問題:
內容管理系統允許使用者輸入包含特殊字元的內容,例如®,這可能會在瀏覽器之間呈現不一致。目標是將這些字元轉換為相應的 HTML 實體並將它們包含在 中。
解決方案:
使用正規表示式
JavaScript 的正則表達式為此提供了全面的解決方案任務:
<code class="javascript">var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/g, function(i) { return '&#'+i.charCodeAt(0)+';'; });</code>
此程式碼使用正規表示式來搜尋Unicode 範圍(00A0-9999) 內的字元以及與號、小於號和大於號。然後,它透過添加“”並附加 Unicode 值將它們轉換為 HTML 字元實體。
範例:
<code class="javascript">var result = encodeHTML('Test ® & ©'); // "Test <sup>&reg;</sup> &amp; <sup>&copy;</sup>"</code>
可自訂替換功能
為了進行更精細的控制,您可以指定自訂替換函數:
<code class="javascript">var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&]/g, (i) => `<sup>&#${i.charCodeAt(0)};</sup>`);</code>
此函數將HTML 實體包含在 中。具有特定格式的標籤。
其他注意事項:
文件:
以上是如何在 JavaScript 中對 HTML 實體進行編碼以實現內容管理系統中的一致呈現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!