最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript另類方法實現(xiàn)htmlencode()與htmldecode()函數(shù)實例分析

 更新時間:2023年05月06日 11:15:55   作者:cuixiping  
這篇文章主要介紹了javascript另類方法實現(xiàn)htmlencode()與htmldecode()函數(shù),結(jié)合實例形式分析了javascript字符編碼與解碼操作的相關(guān)技巧,需要的朋友可以參考下

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

一般比較常用的函數(shù)代碼如下

function HTMLDeCode(str){
	var s="";
	if(str.length== 0) return "";
	s    =    str.replace(/&/g, "&");
	s    =    s.replace(/&lt;/g, "<");
	s    =    s.replace(/&gt;/g,  ">");
	s    =    s.replace(/&nbsp;/g,  " ");
	s    =    s.replace(/'/g,  "\'");
	s    =    s.replace(/&quot;/g,  "\"");
	s    =    s.replace(/<br>/g,  "\n");
	return    s;
}

最常見的做法是采用正則表達式替換的方法,將特殊字符如 < > & 等進行替換,htmlencode的時候這樣替換還比較容易,但發(fā)過來htmldecode的時候就不一定好用了,因為需要反轉(zhuǎn)的情況很多,出了常見的&lt;&gt;&amp;以外,還有&nbsp;&copy;&quot;&reg;等數(shù)十個字符實體,還有&#65;&#66;&#20013;&#25991;或者&#x4E2D;&#x6587;之類以字符的Unicode編碼的十進制或16進制表示的轉(zhuǎn)義,難以全部列舉,用逐個替換不僅代碼冗長而且低效,還容易漏掉某些字符。

代碼如下:

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

相當簡潔!

編碼原理就是創(chuàng)建TextNode節(jié)點,附加到容器中,再取容器的innerHTML.

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

測試一下:

//測試
document.onclick = function (){
  //&lt;p&gt; &amp; &lt;/p&gt;
  alert(htmlencode('<p> & </p>'));
  //<p> & ? ABC 中文 中文 </p>
  alert(htmldecode('&lt;p&gt; &amp; &copy; &#65;&#66;&#67; &#20013;&#25991; &#x4E2D;&#x6587; &lt;/p&gt;'));
}

效果不錯。

htmldecode對入?yún)⒂幸?,如果入?yún)⒉皇呛戏ǖ膃ncode后的結(jié)果,可能無法得到預期結(jié)果。

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

更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript編碼操作技巧總結(jié)》、《JavaScript切換特效與技巧總結(jié)》、《JavaScript查找算法技巧總結(jié)》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學運算用法總結(jié)

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

相關(guān)文章

  • JS 驗證碼功能的三種實現(xiàn)方式

    JS 驗證碼功能的三種實現(xiàn)方式

    這篇文章主要介紹了驗證碼功能的三種實現(xiàn)方式,分為數(shù)字短信驗證碼,圖形驗證碼,滑動驗證碼,本文通過示例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • JavaScript一文帶你玩轉(zhuǎn)web表單網(wǎng)頁

    JavaScript一文帶你玩轉(zhuǎn)web表單網(wǎng)頁

    表單通常用來收集網(wǎng)頁訪問者信息,常見的表單比如搜索引擎的搜索框、各網(wǎng)頁應用的注冊或者登陸界面等,通讀本篇對大家的學習或工作具有一定的價值,需要的朋友可以參考下
    2021-10-10
  • 微信js-sdk預覽圖片接口及從拍照或手機相冊中選圖接口用法示例

    微信js-sdk預覽圖片接口及從拍照或手機相冊中選圖接口用法示例

    這篇文章主要介紹了微信js-sdk預覽圖片接口及從拍照或手機相冊中選圖接口用法,較為詳細的分析了預覽圖片接口及與拍照或手機相冊中選圖接口的功能、調(diào)用方法與相關(guān)使用技巧,需要的朋友可以參考下
    2016-10-10
  • 詳解webpack 多頁面/入口支持&公共組件單獨打包

    詳解webpack 多頁面/入口支持&公共組件單獨打包

    這篇文章主要介紹了詳解webpack 多頁面/入口支持&公共組件單獨打包,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • javascript對HTML字符轉(zhuǎn)義與反轉(zhuǎn)義

    javascript對HTML字符轉(zhuǎn)義與反轉(zhuǎn)義

    這篇文章主要介紹了javascript對HTML字符轉(zhuǎn)義與反轉(zhuǎn)義,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 微信小程序開發(fā)之實現(xiàn)記賬本

    微信小程序開發(fā)之實現(xiàn)記賬本

    這篇文章主要為大家詳細介紹了如何通過微信小程序開發(fā)一個簡單的記賬本,文中的示例代碼講解詳細,感興趣的小伙伴可以和小編一起學習一下
    2023-01-01
  • ListBox實現(xiàn)上移,下移,左移,右移的簡單實例

    ListBox實現(xiàn)上移,下移,左移,右移的簡單實例

    這篇文章主要介紹了ListBox實現(xiàn)上移,下移,左移,右移的簡單實例。需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • 微信小程序云開發(fā)如何實現(xiàn)數(shù)據(jù)庫自動備份實現(xiàn)

    微信小程序云開發(fā)如何實現(xiàn)數(shù)據(jù)庫自動備份實現(xiàn)

    這篇文章主要介紹了小程序云開發(fā) 數(shù)據(jù)庫自動備份實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 超詳細JavaScript深淺拷貝的實現(xiàn)教程

    超詳細JavaScript深淺拷貝的實現(xiàn)教程

    淺拷貝是指,一個新的對象對原始對象的屬性值進行精確地拷貝;深拷貝是指,對于簡單數(shù)據(jù)類型直接拷貝他的值,對于引用數(shù)據(jù)類型,在堆內(nèi)存中開辟一塊內(nèi)存用于存放復制的對象,并把原有的對象類型數(shù)據(jù)拷貝過來。本文將實現(xiàn)JavaScript深淺拷貝,需要的可以參考一下
    2022-09-09
  • 用原生js做單頁應用

    用原生js做單頁應用

    本文主要介紹了用原生js做單頁應用的相關(guān)知識。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01

最新評論

沁阳市| 夏河县| 宜昌市| 沅陵县| 平安县| 阿拉善盟| 仙桃市| 淮南市| 台东县| 渭源县| 碌曲县| 兴海县| 淄博市| 敦化市| 东丽区| 临湘市| 精河县| 金阳县| 武安市| 莲花县| 子洲县| 商南县| 宣武区| 河间市| 永和县| 吉林省| 福州市| 新建县| 宁德市| 通辽市| 科尔| 盖州市| 天门市| 文成县| 文水县| 尖扎县| 越西县| 新沂市| 台南市| 内乡县| 五家渠市|