本文實例講述了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.
解碼原理是將字符串賦 主站蜘蛛池模板: 莱州市| 河津市| 桂阳县| 吉安市| 特克斯县| 宜章县| 井陉县| 五家渠市| 岑溪市| 赤城县| 河曲县| 南汇区| 瑞安市| 利津县| 宁都县| 永吉县| 宣武区| 渝北区| 黑龙江省| 八宿县| 肇源县| 华容县| 和静县| 建水县| 高碑店市| 临桂县| 龙陵县| 涞源县| 西乌珠穆沁旗| 西乌| 安康市| 山阳县| 洛浦县| 砚山县| 怀化市| 西宁市| 汤原县| 海盐县| 邛崃市| 乐山市| 邛崃市|