首頁  >  文章  >  web前端  >  javascript另類方法實作htmlencode()與htmldecode()函數實例分析

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

高洛峰
高洛峰原創
2016-12-06 15:11:531257瀏覽

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

最常見的做法是採用正規表示式替換的方法,將特殊字元如 & 等替換,htmlencode的時候這樣替換還比較容易,但發過來htmldecode的時候就不一定好用了,因為需要反轉的情況很多,出了常見的&以外,還有 ©"®等數十個字符實體,還有AB中文或者中文之類以字符的Unicode編碼的十進位或16進位表示的轉義,難以全部列舉,用逐個替換不僅代碼冗長而且低效,還容易漏掉某些字符。編碼原理就是建立TextNode節點,附加到容器中,再取容器的innerHTML.

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

測試一下:

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

測試一下:

效果不錯。別人這樣想了=||=,不過他的htmldecode程式碼有錯。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn