您现在的位置是:首页 > 文章详情

【JavaScript框架封装】JavaScript中的文本字符串的转义和反转义的实现

日期:2018-07-17点击:201
版权声明:本文为博主原创文章,未经博主允许不得转载。更多学习资料请访问我爱科技论坛:www.52tech.tech https://blog.csdn.net/m0_37981569/article/details/81105949

如果是想把本地的一个字符串串存到服务器,再次取出来的还是文本的话,就需要这个文本字符串的转义;

 /** * 对一个字符串的转义 * @param str * @return {*} */ function escapeHTML(str) { return str.replace(/$/g, '&amp;') // 结尾的字符用&amp替换 .replace(/\</g, '&lt;') // < 用&lt替换 .replace(/\>/g, '&gt;') // > 用&gt替换 .replace(/\'/g, '&#39;') // ' 用&#39替换 .replace(/\"/g, '&quot;'); // " 用&quot替换 } /** * 对一个字符串的反转义 * @param str * @return {*} */ function unscapeHTML(str) { // 查找所有的< > & " ' 字符,并替换掉 return str.replace(/&lt;/g, '<') .replace(/&gt;/g, '>') .replace(/&#39;/g, '\'') .replace(/&quot;/g, '\"') .replace(/&amp;/g, '') // String.fromCharCode() 静态方法根据指定的 Unicode 编码中的序号值来返回一个字符串。String.fromCharCode(65,66,67) “ABC” .replace(/&#(\d+)/g, function ($0, $1) { //parseInt() 函数将给定的字符串以指定基数(radix/base)解析成为整数。就是 你想把string当成radix进制数解析成10进制 return String.fromCharCode(parseInt($1, 10)); }); } 

测试代码如下:

// 转义和反转义的功能测试 var tagText = "<p><b>123&456</b></p>"; // 如果直接打印输出的话,就是一个字符串 console.log(tagText); // <p><b>123&456</b></p> res = escapeHTML(tagText); console.log(res); // &ltp&gt&ltb&gt123&456&lt/b&gt&lt/p&gt&amp // 如果把一个字符串转义为实体之后,就不会正常在页面中显示出来内容,只会显示的是一个字符串 document.body.innerHTML = res; // 会显示的是一个字符串,&ltp&gt&ltb&gt123&456&lt/b&gt&lt/p&gt&amp, 但是浏览器也会自动将实体转换解析 // 如果是一个字符串的话,就会直接在网页中显示出来(按照HTML进行解析) document.body.innerHTML = tagText; // 相当是设置了一段HTML代码 // 对字符反转义之后的结果 res = unscapeHTML(res); // <p><b>123&456</b></p> console.log(res); // 又恢复到最初始的状态

 

原文链接:https://yq.aliyun.com/articles/647682
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章