国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

javascript另類方法實現htmlencode()與htmldecode()函數實例分析

2024-05-06 16:32:55
字體:
來源:轉載
供稿:網友

本文實例講述了javascript另類方法實現htmlencode()與htmldecode()函數。分享給大家供大家參考,具體如下:

最常見的做法是采用正則表達式替換的方法,將特殊字符如 < > & 等進行替換,htmlencode的時候這樣替換還比較容易,但發過來htmldecode的時候就不一定好用了,因為需要反轉的情況很多,出了常見的<>&以外,還有 ©"®等數十個字符實體,還有AB中文或者中文之類以字符的Unicode編碼的十進制或16進制表示的轉義,難以全部列舉,用逐個替換不僅代碼冗長而且低效,還容易漏掉某些字符。

代碼如下:

function htmlencode(s){  var div = document.createElement('div');  div.appendChild(document.createTextNode(s));  return div.innerHTML;}function htmldecode(s){  var div = document.createElement('div');  div.innerHTML = s;  return div.innerText || div.textContent;}

相當簡潔!

編碼原理就是創建TextNode節點,附加到容器中,再取容器的innerHTML.

解碼原理是將字符串賦給容器的innerHTML,再取innerText或textContent.

測試一下:

//測試document.onclick = function (){  //<p> & </p>  alert(htmlencode('<p> & </p>'));  //<p> & © ABC 中文 中文 </p>  alert(htmldecode('<p> & © ABC 中文 中文 </p>'));}

效果不錯。

htmldecode對入參有要求,如果入參不是合法的encode后的結果,可能無法得到預期結果。

我在google搜索,在cnblogs找到一篇和我一樣思路的,原來已經有別人這樣想了=||=,不過他的htmldecode代碼有錯誤。

 

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临武县| 六盘水市| 竹山县| 册亨县| 永州市| 涿鹿县| 门源| 白河县| 鄂温| 诏安县| 鞍山市| 蒲城县| 霍城县| 泾川县| 汉阴县| 大竹县| 岫岩| 鄱阳县| 晋城| 台南市| 涟源市| 红桥区| 福安市| 富源县| 肇州县| 都匀市| 水城县| 临漳县| 鸡东县| 客服| 深州市| 三河市| 潞西市| 德庆县| 栖霞市| 新营市| 泰来县| 赤水市| 兴安县| 理塘县| 大田县|