JS 轉換HTML實體字符


.

.

.

.

.

在HTML中,為了使用某些預留字符(如<、>等等)或者中文亂碼等問題,可以使用HTML字符實體編碼或實體名來解決。

實體名稱就是類似&lt;、&gt;這樣的東西,雖然大部分主流瀏覽器都可以支持實體名,但是也不排除新老瀏覽器存在不兼容的問題,所以使用實體編碼是一種比較靠譜的方案,無論瀏覽器的編碼是什么,使用實體編碼的文字都不會出現亂碼。

那么字符與實體編碼之間是怎樣轉換的呢?

且看代碼:

 1 <html>
 2 <head>
 3 <title>字符轉HTML實體編碼</title>
 4 <script>
 5 function $(id) {return document.getElementById(id);}
 6 function htmlEncode(input)
 7 {
 8 var code = input.charCodeAt(); // 獲得實體編碼
 9 var div = $("divCode");
10 /*
11  * 實體編碼的格式是:&#數字;
12  * &#38; 是 &
13  * &#35; 是 #
14  * code 用戶輸入的字的實體編碼
15  * &#59; 是 ;
16  *
17  * 如果直接寫成 "&#" + code + ";"; 的形式會被瀏覽器直接解析為對應的字符,從而失去了編碼的作用。
18  */
19 div.innerHTML = "&#38;" + "&#35;" + code + "&#59;"; //String.fromCharCode(code); 解碼
20 }
21 </script>
22 </head>
23 <body>
24 <input type="text" onchange="htmlEncode(this.value)"/>
25 <div id="divCode"></div>
26 </body>
27 </html>

使用 String.fromCharCode(code); 便可以將實體編碼轉換回字符。

其余的內容在代碼注釋中已經寫得比較詳細了,如果有什么疑問可以留言,共同研討。

 

原創文章,允許轉載,請注明出處:http://www.cnblogs.com/chuyuhuashi/ 謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM