问题:
内容管理系统允许用户输入包含特殊字符的内容,例如®,这可能会在浏览器之间呈现不一致。目标是将这些字符转换为相应的 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中文网其他相关文章!