`
maloveqiao
  • 浏览: 102634 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

as3日期格式化以及htmlText的安全转义类

    博客分类:
  • as3
 
阅读更多
    package org.juke{ 
            public class Tools { 
                     
                    //时间格式化 
                    public static function fitInTime (second:Number, isShort:Boolean = false, millisecond:Boolean = false):String  
                    { 
                            return TimeTool.timeFormat (second, isShort, millisecond); 
                    } 
                    //特殊字符转义 HTML 格式 
                    public static function htmlspecialchars (text:String):String 
                    { 
                            return StringTool.htmlspecialchars (text); 
                    } 
            } 
    } 
    
    ///////////////////////////////////////////////////// 
    //特殊字符转义 HTML 格式 
    ///////////////////////////////////////////////////// 
    class StringTool 
    { 
            static function htmlspecialchars (string = null, quote_style = null)  
            { 
        // Convert special characters to HTML entities   
        //  
        // version: 812.3017 
        // discuss at: http://phpjs.org/functions/htmlspecialchars 
    
        // +   original by: Mirek Slugen 
        // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 
        // +   bugfixed by: Nathan 
        // +   bugfixed by: Arno 
        // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 
        // -    depends on: get_html_translation_table 
        // *     example 1: htmlspecialchars("<a href='test'>Test</a>", 'ENT_QUOTES'); 
        // *     returns 1: '&lt;a href='test'&gt;Test&lt;/a&gt;' 
             
        var histogram = {}, symbol = '', tmp_str = '', entity = ''; 
        tmp_str = string.toString(); 
         
        if (false === (histogram = get_html_translation_table('HTML_SPECIALCHARS', quote_style))) { 
            return false; 
        } 
         
        for (symbol in histogram) { 
            entity = histogram[symbol]; 
            tmp_strtmp_str = tmp_str.split(symbol).join(entity); 
        } 
         
        return tmp_str; 
            } 
    
            static function get_html_translation_table (table = null, quote_style = null) 
            { 
                    // Returns the internal translation table used by htmlspecialchars and htmlentities   
                    //  
                    // version: 901.714 
                    // discuss at: http://phpjs.org/functions/get_html_translation_table 
    
                    // +   original by: Philip Peterson 
                    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net) 
                    // +   bugfixed by: noname 
                    // %          note: It has been decided that we're not going to add global 
                    // %          note: dependencies to php.js. Meaning the constants are not 
                    // %          note: real constants, but strings instead. integers are also supported if someone 
                    // %          note: chooses to create the constants themselves. 
                    // %          note: Table from http://www.the-art-of-web.com/html/character-codes/ 
                    // *     example 1: get_html_translation_table('HTML_SPECIALCHARS'); 
                    // *     returns 1: {'"': '&quot;', '&': '&amp;', '<': '&lt;', '>': '&gt;'} 
    
                    var entities = {},histogram = {},decimal = 0,symbol = ''; 
                    var constMappingTable = {},constMappingQuoteStyle = {}; 
                    var useTable = {},useQuoteStyle = {}; 
    
                    useTable      = (table ? table.toUpperCase() : 'HTML_SPECIALCHARS'); 
                    useQuoteStyle = (quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT'); 
    
                    // Translate arguments 
                    constMappingTable[0] = 'HTML_SPECIALCHARS'; 
                    constMappingTable[1] = 'HTML_ENTITIES'; 
                    constMappingQuoteStyle[0] = 'ENT_NOQUOTES'; 
                    constMappingQuoteStyle[2] = 'ENT_COMPAT'; 
                    constMappingQuoteStyle[3] = 'ENT_QUOTES'; 
    
                    // Map numbers to strings for compatibilty with PHP constants 
                    if (! isNaN(useTable)) 
                    { 
                            useTable = constMappingTable[useTable]; 
                    } 
                    if (! isNaN(useQuoteStyle)) 
                    { 
                            useQuoteStyle = constMappingQuoteStyle[useQuoteStyle]; 
                    } 
    
                    if (useQuoteStyle != 'ENT_NOQUOTES') 
                    { 
                            entities['34'] = '&quot;'; 
                    } 
    
                    if (useQuoteStyle == 'ENT_QUOTES') 
                    { 
                            entities['39'] = '''; 
                    } 
    
                    if (useTable == 'HTML_SPECIALCHARS') 
                    { 
                            // ascii decimals for better compatibility 
                            entities['38'] = '&amp;'; 
                            entities['60'] = '&lt;'; 
                            entities['62'] = '&gt;'; 
                    } 
                    else if (useTable == 'HTML_ENTITIES') 
                    { 
                            // ascii decimals for better compatibility 
                            entities['38'] = '&amp;'; 
                            entities['60'] = '&lt;'; 
                            entities['62'] = '&gt;'; 
                            entities['160'] = '&nbsp;'; 
                            entities['161'] = '&iexcl;'; 
                            entities['162'] = '&cent;'; 
                            entities['163'] = '&pound;'; 
                            entities['164'] = '&curren;'; 
                            entities['165'] = '&yen;'; 
                            entities['166'] = '&brvbar;'; 
                            entities['167'] = '&sect;'; 
                            entities['168'] = '&uml;'; 
                            entities['169'] = '&copy;'; 
                            entities['170'] = '&ordf;'; 
                            entities['171'] = '&laquo;'; 
                            entities['172'] = '&not;'; 
                            entities['173'] = '&shy;'; 
                            entities['174'] = '&reg;'; 
                            entities['175'] = '&macr;'; 
                            entities['176'] = '&deg;'; 
                            entities['177'] = '&plusmn;'; 
                            entities['178'] = '&sup2;'; 
                            entities['179'] = '&sup3;'; 
                            entities['180'] = '&acute;'; 
                            entities['181'] = '&micro;'; 
                            entities['182'] = '&para;'; 
                            entities['183'] = '&middot;'; 
                            entities['184'] = '&cedil;'; 
                            entities['185'] = '&sup1;'; 
                            entities['186'] = '&ordm;'; 
                            entities['187'] = '&raquo;'; 
                            entities['188'] = '&frac14;'; 
                            entities['189'] = '&frac12;'; 
                            entities['190'] = '&frac34;'; 
                            entities['191'] = '&iquest;'; 
                            entities['192'] = '&Agrave;'; 
                            entities['193'] = '&Aacute;'; 
                            entities['194'] = '&Acirc;'; 
                            entities['195'] = '&Atilde;'; 
                            entities['196'] = '&Auml;'; 
                            entities['197'] = '&Aring;'; 
                            entities['198'] = '&AElig;'; 
                            entities['199'] = '&Ccedil;'; 
                            entities['200'] = '&Egrave;'; 
                            entities['201'] = '&Eacute;'; 
                            entities['202'] = '&Ecirc;'; 
                            entities['203'] = '&Euml;'; 
                            entities['204'] = '&Igrave;'; 
                            entities['205'] = '&Iacute;'; 
                            entities['206'] = '&Icirc;'; 
                            entities['207'] = '&Iuml;'; 
                            entities['208'] = '&ETH;'; 
                            entities['209'] = '&Ntilde;'; 
                            entities['210'] = '&Ograve;'; 
                            entities['211'] = '&Oacute;'; 
                            entities['212'] = '&Ocirc;'; 
                            entities['213'] = '&Otilde;'; 
                            entities['214'] = '&Ouml;'; 
                            entities['215'] = '&times;'; 
                            entities['216'] = '&Oslash;'; 
                            entities['217'] = '&Ugrave;'; 
                            entities['218'] = '&Uacute;'; 
                            entities['219'] = '&Ucirc;'; 
                            entities['220'] = '&Uuml;'; 
                            entities['221'] = '&Yacute;'; 
                            entities['222'] = '&THORN;'; 
                            entities['223'] = '&szlig;'; 
                            entities['224'] = '&agrave;'; 
                            entities['225'] = '&aacute;'; 
                            entities['226'] = '&acirc;'; 
                            entities['227'] = '&atilde;'; 
                            entities['228'] = '&auml;'; 
                            entities['229'] = '&aring;'; 
                            entities['230'] = '&aelig;'; 
                            entities['231'] = '&ccedil;'; 
                            entities['232'] = '&egrave;'; 
                            entities['233'] = '&eacute;'; 
                            entities['234'] = '&ecirc;'; 
                            entities['235'] = '&euml;'; 
                            entities['236'] = '&igrave;'; 
                            entities['237'] = '&iacute;'; 
                            entities['238'] = '&icirc;'; 
                            entities['239'] = '&iuml;'; 
                            entities['240'] = '&eth;'; 
                            entities['241'] = '&ntilde;'; 
                            entities['242'] = '&ograve;'; 
                            entities['243'] = '&oacute;'; 
                            entities['244'] = '&ocirc;'; 
                            entities['245'] = '&otilde;'; 
                            entities['246'] = '&ouml;'; 
                            entities['247'] = '&divide;'; 
                            entities['248'] = '&oslash;'; 
                            entities['249'] = '&ugrave;'; 
                            entities['250'] = '&uacute;'; 
                            entities['251'] = '&ucirc;'; 
                            entities['252'] = '&uuml;'; 
                            entities['253'] = '&yacute;'; 
                            entities['254'] = '&thorn;'; 
                            entities['255'] = '&yuml;'; 
                    } 
                    else 
                    { 
                            throw Error("Table: " + useTable + ' not supported'); 
                            return false; 
                    } 
    
                    // ascii decimals to real symbols 
                    for (decimal in entities) 
                    { 
                            symbol = String.fromCharCode(decimal); 
                            histogram[symbol] = entities[decimal]; 
                    } 
                    return histogram; 
            } 
    } 
    
    ///////////////////////////////////////////////////// 
    //时间格式化代码 
    ///////////////////////////////////////////////////// 
    
    class TimeTool { 
            static const JK_MINUTE:int = 60; 
            static const JK_HOUR:int = 3600; 
            static const JK_DAY:int = 86400; 
            static var s_second:String; 
            static var s_minute:String; 
            static var s_hour:String; 
            static var s_day:String; 
            static function timeFormat (second:Number, isShort:Boolean, millisecond:Boolean):String  
            { 
                    //based on PHP by Kele@Juke; 
                    //convert to AS3 by DDK2@Juke; 
                     
                    if (isShort)  
                    { 
                            s_second = " s "; 
                            s_minute = " m "; 
                            s_hour = " h "; 
                            s_day = " d "; 
                    } 
                    else 
                    { 
                            s_second = " seconds "; 
                            s_minute = " minutes "; 
                            s_hour = " hours "; 
                            s_day = " days "; 
                    } 
                             
                    if (millisecond) { 
                            second /= 1000; 
                            secondsecond = second >> 0; 
                    } 
                             
                    if(second < JK_MINUTE){ 
                            return String(second) + s_second; 
                    } 
                             
                    if (second < JK_HOUR) { 
                            return String ((second / JK_MINUTE) >> 0) + s_minute;// + String (second % JK_MINUTE) + s_second; 
                    } 
                     
                    if (second < JK_DAY) { 
                            //var over:int = second % JK_HOUR; 
                            return String ((second / JK_HOUR) >> 0) + s_hour;// + String((over/JK_MINUTE) >> 0) + s_minute +String (over % JK_MINUTE) + s_second; 
                    } 
                             
                    //var overDay:int = second % JK_DAY; 
                    //var overHour:int = overDay % JK_HOUR; 
                    return String ((second / JK_DAY) >> 0) + s_day;// + String((overDay / JK_HOUR) >> 0) + s_hour + String ((overHour / JK_MINUTE) >> 0) + s_minute + String (overHour % JK_MINUTE) + s_second; 
            } 
    }
分享到:
评论

相关推荐

    基于Android系统Api封装常用工具类.zip

    2. **日期时间处理**:Android API中的`java.util.Calendar`和`java.text.SimpleDateFormat`可以用来处理日期和时间,但自定义工具类可能会提供更简洁的API,例如格式化日期、计算时间差等。 3. **网络请求**:...

    freemarker总结

    有一种特殊的字符串称为raw字符串,被认为是纯文本,其中的\和{等不具有特殊含义,该类字符串在引号前面加r,下面是一个例子: ${r"/${data}"year""}屏幕输出结果为:/${data}"year" 转义 含义 ...

    android的strings.xml示例代码

    2. **格式化数字和日期**: 使用`&lt;plurals&gt;`标签可以处理复数形式,如“1个苹果,2个苹果”。`&lt;date&gt;`和`&lt;time&gt;`标签则用于格式化日期和时间。 3. **嵌套字符串**: 可以在字符串中引用其他字符串,便于复用和组合。 ...

    仿QQ的在线文本编辑器

    10. **安全性**:在处理用户输入时,编辑器必须防止XSS(跨站脚本攻击)和其他安全问题,对用户提交的内容进行适当的过滤和转义。 在"QzoneEditor"这个压缩包文件中,可能包含了编辑器的源代码、示例文件、样式表...

    RTFV1.8规范

    RTF(Rich Text Format)是一种用于编码格式化文本和图形的方法,旨在实现不同应用之间或跨平台的数据和格式互换。RTFV1.8规范是微软公司为解决不同软件之间文档兼容性问题而提出的一种标准格式。 #### 二、RTF语法...

    PHP实例开发源码—留言帖吧 utf-8.zip

    7. 安全性:防止SQL注入和跨站脚本攻击(XSS),通过预处理语句、参数绑定和对用户输入进行转义或过滤,确保系统的安全性。 而UTF-8编码是Unicode的一个变体,能够表示世界上几乎所有的字符,包括中文、英文、日文...

    Go-Golang模板语言和FuncMap功能的简单演示

    `text/template`和`html/template`包是Go语言的标准库,它们都提供了一种声明式的编程方式来生成字符串输出,主要区别在于`html/template`包会自动转义HTML实体,以防止XSS攻击。这两个包的工作原理相似,都是通过...

    jdk14 jdk-14.0.1_linux-x64_bin 网盘下载

    文本块使用三个双引号(`"""`)来标记开始和结束,可以自动处理转义字符,使得HTML或XML等格式化的字符串更易于编写和阅读。 ##### 2. **Switch Expressions (标准)** 在JDK 14中,`switch`表达式从预览特性变成了...

    原生态纯JavaScript 100大技巧大收集

    - 使用字符串替换的方法,根据`formatStr`中的指令来构建最终的格式化日期时间字符串。 - 支持的格式指令包括`yyyy`、`yy`、`MM`、`M`、`dd`、`d`、`hh`、`h`、`mm`、`m`等。 - 例如,`yyyy-MM-dd hh:mm:ss`表示年月...

    java面试宝典3

    - 使用 `java.text.SimpleDateFormat` 类可以将 `Date` 对象转换成特定格式的字符串,例如 `"yyyy-MM-dd HH:mm:ss"`。创建一个 `SimpleDateFormat` 对象并指定所需的格式,然后调用 `format(Date date)` 方法进行...

    特殊文字处理,对于一些特殊要求的文字加以处理比较好1

    文字处理主要指计算机系统对文本的输入、编辑、格式化、存储和输出等一系列操作。在这个过程中,特殊文字处理是其中的一个子领域,它专门处理那些不在常规字符集内的文字,比如繁体字、简体字、少数民族文字、表情...

    JS函数库的使用

    本文将围绕一个实用的JS函数库进行详细介绍,该库包含了常用的字符串处理、日期格式化等函数,旨在帮助开发人员更高效地完成日常开发工作。 #### 字符串处理函数 ##### 1. 字符串长度截取 ```javascript function...

    原生JavaScript技巧大收集100个

    ### 原生JavaScript技巧详解 ... - 支持年(yyyy, yy)、月(MM, M)、周(w, W)、日(dd, DD)等格式化。 通过以上这些原生JavaScript技巧的学习和应用,可以更加高效地完成日常的Web开发工作。

    Java面试题最全集.doc

    - **格式化日期**:使用`java.text.SimpleDateFormat`或`java.time.format.DateTimeFormatter`。 #### 5. 数组和集合 - **数组**:固定长度的数据结构,适合存储固定数量的元素。 - **集合**:如`List`、`Set`和`...

    php面试题(完整版整理)

    10. 防止SQL注入:通常使用`addslashes()`函数对用户输入进行转义,或者使用参数化查询(预处理语句)。 11. PHP1.0状态码401:表示“未授权”,HTTP响应状态码,表明客户端无权访问资源。 12. PHP5的构造函数是`_...

    JAVA面试题全集

    - 格式化日期:使用 `java.text.SimpleDateFormat` 或 `java.time.format.DateTimeFormatter`。 5. **数组和集合** - 数组是固定长度的数据结构,用于存储相同类型的元素。 - 集合框架包括 `List`、`Set` 和 `...

    2021-2022计算机二级等级考试试题及答案No.16582.docx

    17. Java日期类:Date、Calendar和DateFormat类都在java.util包中,这个描述是错误的,因为DateFormat类在java.text包中。 18. Dataset填充数据:SqlDataAdapter是.NET框架中用于填充DataSet的数据对象,正确答案是...

    Java基础知识面试题目

    - **格式化日期**:使用`java.text.SimpleDateFormat`类可以将日期对象格式化为字符串,也可以将字符串解析为日期对象。 **5. 数组和集合** - **数组**:固定大小的数据结构,用于存储同类型的数据。 - **集合**:...

    最新php留言板

    以上示例展示了如何使用PHP处理用户的留言提交,并将信息格式化后保存到文件中。需要注意的是,在实际开发中,建议将留言信息存储在数据库中而不是文件中,这样可以更好地管理和扩展数据。 #### 五、总结 通过本篇...

    layui-table对返回的数据进行转变显示的实例

    在使用layui表格时,我们经常会遇到需要对从服务器返回的数据进行格式化或转换的情况,以便在前端以更直观、友好的方式展示给用户。本文将详细介绍如何利用layui-table的自定义模板功能来实现这一目标。 1. **...

Global site tag (gtag.js) - Google Analytics