javascript HTMLEncode HTMLDecode的完整實例(兼容ie和火狐)
更新時間:2009年06月02日 17:45:50 作者:
用的瀏覽器內部轉換器實現(xiàn)轉換,方法是動態(tài)創(chuàng)建一個容器標簽元素
方法一:
用的瀏覽器內部轉換器實現(xiàn)轉換,方法是動態(tài)創(chuàng)建一個容器標簽元素,如DIV,將要轉換的字符串設置為這個元素的innerText(ie支持)||textContent(火狐支持),然后返回這個元素的innerHTML,即得到經(jīng)過HTML編碼轉換的字符串,顯示的時候反過來就可以了(實際上顯示的時候不用通過轉換,直接賦值在div就可以正常顯示的)。
<script type="text/javascript">
function HTMLEncode(html)
{
var temp = document.createElement ("div");
(temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html);
var output = temp.innerHTML;
temp = null;
return output;
}
function HTMLDecode(text)
{
var temp = document.createElement("div");
temp.innerHTML = text;
var output = temp.innerText || temp.textContent;
temp = null;
return output;
}
var html = "<br>dffdf<p>qqqqq</p>";
var encodeHTML = HTMLEncode(html);
alert("方式一:" + encodeHTML);
var decodeHTML = HTMLDecode(encodeHTML);
alert("方式一:" + decodeHTML);
</script>
方法二:
通過把正則表達式把<>和空格符轉換成html編碼,由于這種方式不是系統(tǒng)內置的所以很容易出現(xiàn)有些特殊標簽沒有替換的情況,而且效率低下
<script type="text/javascript">
function HTMLEncode2(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;
}
function HTMLDecode2(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 html = "<br>ccccc<p>aaaaa</p>";
var encodeHTML = HTMLEncode2(html);
alert("方式二:" + encodeHTML);
var decodeHTML = HTMLDecode2("方式二:" + encodeHTML);
alert(decodeHTML);
</script>
用的瀏覽器內部轉換器實現(xiàn)轉換,方法是動態(tài)創(chuàng)建一個容器標簽元素,如DIV,將要轉換的字符串設置為這個元素的innerText(ie支持)||textContent(火狐支持),然后返回這個元素的innerHTML,即得到經(jīng)過HTML編碼轉換的字符串,顯示的時候反過來就可以了(實際上顯示的時候不用通過轉換,直接賦值在div就可以正常顯示的)。
復制代碼 代碼如下:
<script type="text/javascript">
function HTMLEncode(html)
{
var temp = document.createElement ("div");
(temp.textContent != null) ? (temp.textContent = html) : (temp.innerText = html);
var output = temp.innerHTML;
temp = null;
return output;
}
function HTMLDecode(text)
{
var temp = document.createElement("div");
temp.innerHTML = text;
var output = temp.innerText || temp.textContent;
temp = null;
return output;
}
var html = "<br>dffdf<p>qqqqq</p>";
var encodeHTML = HTMLEncode(html);
alert("方式一:" + encodeHTML);
var decodeHTML = HTMLDecode(encodeHTML);
alert("方式一:" + decodeHTML);
</script>
方法二:
通過把正則表達式把<>和空格符轉換成html編碼,由于這種方式不是系統(tǒng)內置的所以很容易出現(xiàn)有些特殊標簽沒有替換的情況,而且效率低下
復制代碼 代碼如下:
<script type="text/javascript">
function HTMLEncode2(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;
}
function HTMLDecode2(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 html = "<br>ccccc<p>aaaaa</p>";
var encodeHTML = HTMLEncode2(html);
alert("方式二:" + encodeHTML);
var decodeHTML = HTMLDecode2("方式二:" + encodeHTML);
alert(decodeHTML);
</script>
您可能感興趣的文章:
- php中json_decode()和json_encode()的使用方法
- js中encode、decode的應用說明
- javascript encodeURI和encodeURIComponent的比較
- 淺析php中json_encode()和json_decode()
- JS中encodeURIComponent函數(shù)用php解碼的代碼
- php數(shù)組轉換js數(shù)組操作及json_encode的用法詳解
- JS的encodeURI和java的URLDecoder.decode使用介紹
- php中json_encode UTF-8中文亂碼的更好解決方法
- JS對URL字符串進行編碼/解碼分析
- javascript另類方法實現(xiàn)htmlencode()與htmldecode()函數(shù)實例分析
相關文章
純JavaScript 實現(xiàn)flappy bird小游戲實例代碼
這篇文章主要介紹了純JavaScript 實現(xiàn)flappy bird小游戲實例代碼,b本文分七大步驟給大家介紹,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-09-09
javascript實現(xiàn)時間日期的格式化的方法匯總
這篇文章主要介紹了javascript實現(xiàn)時間日期的格式化的方法匯總,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
localResizeIMG先壓縮后使用ajax無刷新上傳(移動端)
隨著技術的發(fā)展,移動設備像素越來越高,但是這么大的圖片怎么上傳呢?下面小編就給大家一起學習移動端圖片上傳的方法之localResizeIMG先壓縮后使用ajax無刷新上傳,需要的朋友可以參考下2015-08-08
微信小程序實現(xiàn)modal彈出框遮罩層組件(可帶文本框)
這篇文章主要給大家介紹了關于微信小程序實現(xiàn)modal彈出框遮罩層組件(可帶文本框)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12

