首页 >web前端 >js教程 >如何在 JavaScript 中对 HTML 实体进行编码以实现一致的用户生成内容显示?

如何在 JavaScript 中对 HTML 实体进行编码以实现一致的用户生成内容显示?

Susan Sarandon
Susan Sarandon原创
2024-10-31 07:08:30782浏览

How to Encode HTML Entities in JavaScript for Consistent User-Generated Content Display?

在 JavaScript 中编码 HTML 实体

处理用户生成的内容时,®、&、© 和 ™ 等实体可能不会显示跨浏览器一致。 JavaScript 提供了多种在 HTML 中对这些实体进行编码的方法。

转换为 HTML 实体

要将符号转换为其相应的 HTML 实体,请使用以下代码:

<code class="js">var encodedStr = rawStr.replace(/[\u00A0-\u9999<>\&amp;]/g, function(i) {
   return '&amp;#'+i.charCodeAt(0)+';';
});</code>

显示为上标

要将编码实体显示为具有自定义样式的上标,请使用 CSS:

<code class="css">sup {
  font-size: 0.6em;
  padding-top: 0.2em;
}</code>

示例实现

<code class="js">var regs = document.querySelectorAll('®');
for (var i = 0, l =regs.length; i < l; ++i ) {
  var div = document.createElement('sup');
  var text = document.createTextNode(encodedStr);
  div.appendChild(text);
  regs[i].parentNode.insertBefore(div);
}</code>

此代码:

  1. 选择所有带有®符号的元素。
  2. 创建一个sup元素并将其添加到所选元素之前。
  3. 将编码的 HTML 实体附加到 super 元素。

其他注意事项

  • 使用 UTF8 字符编码和数据库存储确保正确显示。
  • 浏览器字体配置可能仍会影响某些字符的外观。

文档

  • String.charCodeAt :https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt
  • HTML 字符实体:http://www.chucke.com/entities。 html

以上是如何在 JavaScript 中对 HTML 实体进行编码以实现一致的用户生成内容显示?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn