1.背景:在项目中,经常遇到一些字符需要进行转义后才能显示到界面上,如“&”,在界面中显示的是“&”,在html中书写“&”,显示在界面的中的依然是“&”。

    这时候,就需要进行转义

2.解决方案

<script>
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;
}
};
</script>

使用方法:HtmlUtil.htmlDecodeByRegExp("&amp;")

参考:

http://blog.csdn.net/u013026207/article/details/53994032

https://www.cnblogs.com/leejersey/p/4568092.html

最新文章

  1. scikit-learn 朴素贝叶斯类库使用小结
  2. Overload 和Override 的区别
  3. POJ 3067 Japan(树状数组)
  4. 世纪互联运营的Microsoft Azure正式支持FreeBSD虚拟机镜像
  5. c++ (P49—P68)
  6. CSS样式学习笔记『W3School』
  7. sriov查看pf-vf对应关系
  8. 米兰站热卖:奢侈品电商困局已破?-搜狐IT
  9. poj 3270 置换
  10. 学习笔记之html5相关内容
  11. java 执行redis的部分方法
  12. .parents() 与 .parent()对比
  13. nginx多域名配置
  14. android学习笔记Fragment的使用
  15. MySQL备份常用命令总结
  16. flask 操作mysql的两种方式-sql操作
  17. [Python] uniform() 函数
  18. cookie session 讲解
  19. libevent 和 libev 提高网络应用性能
  20. windows 服务器MYSQL 数据库安装配置

热门文章

  1. 【hadoop】 eclipse中的“run on hadoop”和打包成jar提交任务的区别
  2. 最短路径SPFA算法(邻接表存法)
  3. ASP.Net一般处理程序Session用法
  4. mysql 表的分区
  5. R语言学习笔记(四)
  6. samtools软件作用
  7. SPOJ - DISUBSTR 求串中子串的个数
  8. PIE SDK栅格RGB渲染
  9. fixed
  10. 通过Qt从URL下载文件