js对文本框的特殊字符进行编译和反编译,过滤的效果,常用于文本输入防止xss

来源:互联网 发布:c 网页中数据写入xml 编辑:程序博客网 时间:2024/06/09 22:45

以下为转译和反编译的代码

var HtmlUtil = {/*1.用浏览器内部转换器实现html转码*/htmlEncode: function(html) {//1.首先动态创建一个容器标签元素,如DIV  var temp = document.createElement("div");//2.然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持)  (temp.textContent != undefined) ? (temp.textContent = html) : (temp.innerText = html);//3.最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了  var output = temp.innerHTML;temp = null;return output;},/*2.用浏览器内部转换器实现html解码*/htmlDecode: function(text) {//1.首先动态创建一个容器标签元素,如DIV  var temp = document.createElement("div");//2.然后将要转换的字符串设置为这个元素的innerHTML(ie,火狐,google都支持)  temp.innerHTML = text;//3.最后返回这个元素的innerText(ie支持)或者textContent(火狐,google支持),即得到经过HTML解码的字符串了。  var output = temp.innerText || temp.textContent;temp = null;return output;},/*3.用正则表达式实现html转码*/htmlEncodeByRegExp: function(str) {var s = "";if (str.length == 0) return "";s = str.replace(/&/g, "&");s = s.replace(/</g, "<");s = s.replace(/>/g, ">");s = s.replace(/ /g, " ");s = s.replace(/\'/g, "'");s = s.replace(/\"/g, '"');return s;},/*4.用正则表达式实现html解码*/htmlDecodeByRegExp: function(str) {var s = "";if (str.length == 0) return "";s = str.replace(/&/g, "&");s = s.replace(/</g, "<");s = s.replace(/>/g, ">");s = s.replace(/ /g, " ");s = s.replace(/'/g, "\'");s = s.replace(/"/g, "\"");return s;}};





调用:var newStr=HtmlUtil.htmlEncodeByRegExp(str);

过滤特殊字符代码如下:

//过滤特殊字符串function filterStr(str) {var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%+_]");var specialStr = "";for(var i = 0; i < str.length; i++) {specialStr += str.substr(i, 1).replace(pattern, '');}return specialStr;}



部分转载来自:http://blog.csdn.net/u013026207/article/details/53994032


阅读全文
0 0