关于字符串的编码和解码

有的时候我们需要对目标字符串中的”<“|">"等进行编码或者解码。比如搜索功能附带导致的xss攻击。

 

1、我们先看看prototype 1.6.0

 

注意:这个的api不对"和’进行编码

 

escapeHTML:function(){
    var self = arguments.callee;
    self.text.data = this;
    return self.div.innerHTML;
}

/*内部依赖比较多啊*/
unescapeHTML:function(){
    var div = new Element('div');
    //调用stripTags 去掉html标签
    div.innerHTML = this.stripTags();
    return div.childNodes[0] ? (div.childNodes.length > 1 ?
      $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
      div.childNodes[0].nodeValue) : '';
}
 

 

 

2、下方展示的是参照tangram的对5种字符进行编码---- :&<>"'

 

 

/*
encodeHTML --对目标字符串进行html编码
*@function*
*@param {String} source*
*@return {String} html编码后的字符串* ----对&<>"'进行编码
*/
ZYC.string.encodeHTML = function(source){
    return String(source).replace(/&/g,'&amp;')
	                     .replace(/</g,'&lt;')
						 .replace(/>/g,'&gt;')
						 .replace(/"/g,'&quot;')
						 .replace(/'/g,'&#39;');
};

/*
decodeHTML --对目标字符串进行html解码
*@function*
*@param {String} source*
*@return {String} html解码后的字符串* 
*/
ZYC.string.decodeHTML = function(source){
    var str = String(source).replace(/&amp;/g,'&')
	                     .replace(/&lt;/g,'<')
						 .replace(/&gt;/g,'>')
						 .replace(/&quot;/g,'"');
    return str.replace(/&#([\d]+);/g,function(_0,_1){
	    return String.formCharCode(parseInt(_1,10));
	});
};
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值