zoukankan      html  css  js  c++  java
  • JS自定义编码和解码方案

    本例将根据字符在 Unicode 字符表中的编号对字符串进行个性编码。例如,字符中的 Unicode 编码为 20013说如果在网页中使用 Unicode 编码显示,则可以输入“&#20013”。

    使用 charCodeAt() 方法能够把指定的字符串转换为 Unicode 编码,然后利用 replace() 方法逐个对字符进行匹配、编码转换最后返回以网页能够显示的编码格式的信息。

    下面代码利用字符串的 charCodeAt() 方法对字符串进行自定义编码。

    var toUnicode = String.prototype.toUnicode = function() {  //对字符串进行编码操作
        var _this = arguments[0] || this;  //判断是否存在参数,如果存在则使用静态方法调用参数
                                           //值,否则作为字符串对象的方法来处理当前字符串对象
        function f() {  //定义替换文本函数
            return "&#" + arguments[0].charCodeAt(0) + ";";  //以网页编码格式显示被编码的字符串
        }
        return _this.replace(/[^u00-uFF]|w/gmi, f);  //使用replace()方法执行匹配、替换操作
    };

    在函数体内首先判断参数,以决定执行操作的方式;然后在 replace() 字符替换方法中借助替换函数完成版被匹配字符的转码操作。

    var s = "JavaScript 中国";  //定义字符串
    s = toUnicode(s);  //以静态函数的方式调用
    console.log(s);
    //返回javascript�&#22269
    var s = "JavaScript 中国";
    s = toUnicode();  //以String原型方法的方式调用
    document.write(s);  //显示为“JavaScript 中国”

    与 toUnicode() 编码操作相反,设计思路和实现代码基本相同。

    var fromUnicode = String.prototype.fromUnicode = function() {  //对Unicode 编码进行解码操作
        var _this = arguments[0] || this;  //判断是否存在参数,如果存在则使用静态方法调用参数值
                                           //否则作为字符串对象的方法来处理当前字符串对象
        function f() {  //定义替换文本函数
            return String.fromCharCode(arguments[1]);  //把第一个子表达式的值转换为字符
        }
        return _this.place(/&#(d*);/gmi, f);  //使用replace()匹配并替换Unicode编码为字符
    };

    对于 ASCII 字符来说,其 Unicode 编码在 uoo~uFF(十六进制)之间,而对于双字节的汉字来说,则应该是大于 uFF 编码的字符集,因此在判断时要考虑到不同的字符集合。

    var s = "JavaScript 中国";  //定义字符串
    s = toUnicode(s);  //对字符串进行Unicode编码
    console.log(s);
    //返回javascript�&#22269
    s = s.fromUnicode(); //对被编码的字符串进行解码 
    console.log(); //返回字符串“JavaScript 中国”
  • 相关阅读:
    easy ui 表单ajax和from两种提交数据方法
    easy ui 下拉级联效果 ,下拉框绑定数据select控件
    easy ui 下拉框绑定数据select控件
    easy ui 异步上传文件,跨域
    easy ui 菜单和按钮(Menu and Button)
    HTTP 错误 404.3
    EXTJS4.2 后台管理菜单栏
    HTML 背景图片自适应
    easy ui 表单元素input控件后面加说明(红色)
    EXTJS 4.2 添加滚动条
  • 原文地址:https://www.cnblogs.com/-mrl/p/15252011.html
Copyright © 2011-2022 走看看