用Javascript进行HTML转义(分享)
this.REGX_HTML_ENCODE = /"|&|'|<|>|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;
  this.encodeHtml = function(s){
      return (typeof s != "string") ? s :
          s.replace(this.REGX_HTML_ENCODE,
                    function($0){
                        var c = $0.charCodeAt(0), r = ["&#"];
                        c = (c == 0x20) ? 0xA0 : c;
                        r.push(c); r.push(";");
                        return r.join("");
                    });
  };
 
    this.HTML_DECODE = {
        "<"  : "<",
        ">"  : ">",
        "&" : "&",
        " ": " ",
        """: "\"",
        "©": "©"
        // Add more
    };
this.REGX_HTML_DECODE = /&\w+;|&#(\d+);/g;
this.decodeHtml = function(s){
      return (typeof s != "string") ? s :
          s.replace(this.REGX_HTML_DECODE,
                    function($0,$1){
                        var c = this.HTML_ENCODE[$0]; // 尝试查表
                        if(c === undefined){
                            // Maybe is Entity Number
                            if(!isNaN($1)){
                                c = String.fromCharCode(($1 == 160) ? 32:$1);
                            }else{
                                // Not Entity Number
                                c = $0;
                            }
                        }
                        return c;
                    });
  };
$package("js.lang"); // 没有包管理时,也可简单写成 js = {lang:{}};
js.lang.String = function(){
    this.REGX_HTML_ENCODE = /"|&|'|<|>|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;
    this.REGX_HTML_DECODE = /&\w+;|&#(\d+);/g;
    this.REGX_TRIM = /(^\s*)|(\s*$)/g;
    this.HTML_DECODE = {
        "<" : "<",
        ">" : ">",
        "&" : "&",
        " ": " ",
        """: "\"",
        "©": ""
        // Add more
    };
    this.encodeHtml = function(s){
        s = (s != undefined) ? s : this.toString();
        return (typeof s != "string") ? s :
            s.replace(this.REGX_HTML_ENCODE,
                      function($0){
                          var c = $0.charCodeAt(0), r = ["&#"];
                          c = (c == 0x20) ? 0xA0 : c;
                          r.push(c); r.push(";");
                          return r.join("");
                      });
    };
    this.decodeHtml = function(s){
        var HTML_DECODE = this.HTML_DECODE;
        s = (s != undefined) ? s : this.toString();
        return (typeof s != "string") ? s :
            s.replace(this.REGX_HTML_DECODE,
                      function($0,$1){
                          var c = HTML_DECODE[$0];
                          if(c == undefined){
                              // Maybe is Entity Number
                              if(!isNaN($1)){
                                  c = String.fromCharCode(($1==160)?32:$1);
                              }else{
                                  c = $0;
                              }
                          }
                          return c;
                      });
    };
    this.trim = function(s){
        s = (s != undefined) ? s : this.toString();
        return (typeof s != "string") ? s :
            s.replace(this.REGX_TRIM, "");
    };
    this.hashCode = function(){
        var hash = this.__hash__, _char;
        if(hash == undefined || hash == 0){
            hash = 0;
            for (var i = 0, len=this.length; i < len; i++) {
                _char = this.charCodeAt(i);
                hash = 31*hash + _char;
                hash = hash & hash; // Convert to 32bit integer
            }
            hash = hash & 0x7fffffff;
        }
        this.__hash__ = hash;
        return this.__hash__;
    };
};
js.lang.String.call(js.lang.String);
js.lang.String.call(String.prototype);
  // 那么
  var str = "<B>&'\"中国</B>abc def";
  var ec_str = str.encodeHtml();
  document.write(ec_str);
  document.write("<br><br>");
  var dc_str = ec_str.decodeHtml();
  document.write(dc_str);
地址:http://www.myexception.cn/HTML-CSS/888888.html												
											用Javascript进行HTML转义(分享)的更多相关文章
- JavaScript  序列化、转义
		
JavaScript 序列化.转义 序列化 // 将对象转换为字符串 JSON.stringify() // 将字符串转换为对象类型 JSON.parse() 转义 // URl中未转义的字符 de ...
 - javascript之url转义escape()、encodeURI()和decodeURI()
		
我们可以知道:escape()除了 ASCII 字母.数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法.而encodeURI() 用于编码整个URI,因 ...
 - javascript之url转义escape()、encodeURI()和decodeURI(),ifram父子传参参数有中文时出现乱码
		
ifram父子传参参数有中文时出现乱码,可先在父级页面用encodeURI转义,在到子页面用进行decodeURI()解码 我们可以知道:escape()除了 ASCII 字母.数字和特定的符号外,对 ...
 - JavaScript 闭包的详细分享(三种创建方式)(附小实例)
		
JavaScript闭包的详细理解 一.原理:闭包函数--指有权访问私有函数里面的变量和对象还有方法等:通俗的讲就是突破私有函数的作用域,让函数外面能够使用函数里面的变量及方法. 1.第一种创建方式 ...
 - JavaScript day3(转义符)
		
转义符(escape character) 当你定义一个字符串必须要用单引号或双引号来包裹它.那么当你需要在字符串中使用一个: " 或者 ' 时该怎么办呢? 在 JavaScript 中可 ...
 - javascript之url转义escape()、encodeURI()和encodeURIComponent()
		
JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decod ...
 - javascript进行url转义方法比较escape、encodeURI和encodeURIComponent
		
escape会将除了 ASCII 字母.数字和特定的符号(* @ - _ + . /)以外的字符全部进行转义编码,因此如果想对URL编码,最好不要使用此方法,因为它会让你的URL变的不可读. 提示:E ...
 - JavaScript 性能优化技巧分享
		
JavaScript 作为当前最为常见的直译式脚本语言,已经广泛应用于 Web 应用开发中.为了提高Web应用的性能,从 JavaScript 的性能优化方向入手,会是一个很好的选择. 本文从加载.上 ...
 - JavaScript 的HTML转义方法 html_encode 和 html_decode
		
此方法用来将用户输入内容中的尖括号.引号等进行转义
 
随机推荐
- webserver<1>
			
1. 实现基础的信号处理 sigaction使用前一定内存清零 2. 实现基础的进程模型 wait 等待子进程结束 #include <stdio.h> #include <unis ...
 - HTTP-304 NOT Modified
			
http://www.douban.com/note/161120791/ http://blog.sina.com.cn/s/blog_4c98b9600100jd4z.html http://ww ...
 - .NET framework Chart组件SeriesChartType 枚举
			
成员名称 说明 Area 面积图类型. Bar 条形图类型. BoxPlot 盒须图类型. Bubble 气泡图类型. Candlestick K 线图类型. Column ...
 - oracle的存储过程语法(转)
			
1.ORA-00942: table or view does not exist 指的你要操作的表尚未存在,需要先create出来先. 2.ORA-00922: missing or invalid ...
 - Oracle“不等于号”与Nulls的情况(转)
			
今天突然才发现,Oracle中的“不等于操作符”是忽略null的. 比如,查询comm不等于的500的记录,我会理所当然地使用where comm != 500 预想会返回包含null的不等于500的 ...
 - android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事
			
1.1 手机常见分辨率: 4:3VGA 640*480 (Video Graphics Array)QVGA 320*240 (Quarter VGA)HVGA 480*320 (Half ...
 - 【转】iOS开发Xcode7真机调试教程
			
原文网址:https://www.skyfox.org/ios-xcode7-debug-device.html 从Xcode7开始,Xcode 不需要$99/$299升级开发者直接可以进行真机调试 ...
 - windows 7 下 BCGControlBar 的安装破解
			
一定要以管理员权限启动,否则没有注册码输入框,不能破解,折腾我好几遍 谨记
 - [QT]构建正则表达式测试
			
正则表达式是个强大的东西 暂时先记录一个用法: QString str = "Peak memory: KEY s"; QString data = "Peak memo ...
 - A*寻路算法的探寻与改良(二)
			
A*寻路算法的探寻与改良(二) by:田宇轩 第二部分:这部分内容主要是使用C语言编程实现A*, ...