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("&")
參考:
http://blog.csdn.net/u013026207/article/details/53994032
https://www.cnblogs.com/leejersey/p/4568092.html
