資源描述:
《aspnet與js中字符串的html編碼與解碼》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、asp.net與js中字符串的HTML編碼與解碼一、Asp.net中字符的HTML編碼與解碼?字符的HTML編碼:?System.Web.HttpUtility.HtmlEncode("字符串");?字符的HTML解碼:???message?=?page.Server.HtmlDecode("字符串");?二、JS中的HTML編碼與解碼?有兩中方法可以實(shí)現(xiàn)。一種是通過(guò)將值賦給一個(gè)動(dòng)態(tài)創(chuàng)建一個(gè)容器來(lái)實(shí)現(xiàn),另外一種方法是通過(guò)替換特殊字符來(lái)實(shí)現(xiàn)。1、通過(guò)將值賦給一個(gè)動(dòng)態(tài)創(chuàng)建一個(gè)容器來(lái)實(shí)現(xiàn)? 1)HTML編碼: 此方法是用的瀏覽器內(nèi)部轉(zhuǎn)換器實(shí)現(xiàn)轉(zhuǎn)換,方法是動(dòng)態(tài)創(chuàng)建一個(gè)容器標(biāo)簽元素,如DIV,將
2、要轉(zhuǎn)換的字符串設(shè)置為這個(gè)元素的innerText,然后返回這個(gè)元素的innerHTML,即得到經(jīng)過(guò)HTML編碼轉(zhuǎn)換的字符串。?123456789代碼function?HTMLEncode?(?input?){????var?converter?=?document.createElement("DIV");????converter.innerText?=?input;????var?output?=?converter.innerHTML;????converter?=?null;????return?output;} 2)HTML解碼:???? 用相同的方法實(shí)現(xiàn)對(duì)字符串的HTMLDec
3、ode解碼,但有個(gè)問(wèn)題就是緊跟在字符"<"后面的非空字符將連同字符"<"同時(shí)顯示不出來(lái)。當(dāng)?然,對(duì)字符串作相應(yīng)處理是可以解決這個(gè)問(wèn)題的,比如在字符"<"后面加個(gè)空格,解碼后再去掉就行,這是后話。畢竟,要使用?HTMLDecode方法解碼,自然是字符串已經(jīng)經(jīng)過(guò)HTMLEncode方法編碼了,而經(jīng)過(guò)HTMLEncode編碼后的字符串,是不可能有字符?"<"存在的。?12345678function?HTMLDecode?(?input?){????var?converter?=?document.createElement("DIV");????converter.innerHTML?=?inpu
4、t;????var?output?=?converter.innerText;????converter?=?null;????return?output;}2、通過(guò)替換特殊字符來(lái)實(shí)現(xiàn) 1)HTML編碼: 12345678910111213function????HTMLEnCode(str)??{???????????var????s????=????"";???????????if????(str.length????==????0)????return????"";???????????s????=????str.replace(/&/g,????">");??????????
5、?s????=????s.replace(//g,????????">");???????????s????=????s.replace(/????/g,????????" ");???????????s????=????s.replace(/'/g,??????"'");???????????s????=????s.replace(/"/g,??????""");???????????s????=????s.replace(//g,??????"
6、");???????????return????s;??} 2)HTML解碼:?12345678910111213function????HTMLDeCode(str)??{???????????var????s????=????"";???????????if????(str.length????==????0)????return????"";???????????s????=????str.replace(/>/g,????"&");???????????s????=????s.replace(/</g,????????"<");???????????s????=????s
7、.replace(/>/g,????????">");???????????s????=????s.replace(/ /g,????????"????");???????????s????=????s.replace(/'/g,??????"'");???????????s????=????s.replace(/"/g,??????""");???????????s