javascript - 在 JavaScript 中将特殊字符转换为 HTML

标签 javascript

如何在 JavaScript 中将特殊字符转换为 HTML?

例子:

  • & (&符号)变为 &amp .
  • " (双引号)变为 &quot什么时候ENT_NOQUOTES未设置。
  • ' (单引号)变为 &#039仅当 ENT_QUOTES已设置。
  • < (小于)变为 &lt .
  • > (大于)变为 &gt .

最佳答案

在我看来,最好的方法是使用浏览器的内置 HTML 转义功能来处理许多情况。为此,只需在 DOM 树中创建一个元素并将该元素的 innerText 设置为您的字符串。然后检索元素的 innerHTML。浏览器将返回一个 HTML 编码的字符串。

function HtmlEncode(s)
{
  var el = document.createElement("div");
  el.innerText = el.textContent = s;
  s = el.innerHTML;
  return s;
}

测试运行:

alert(HtmlEncode('&;\'><"'));

输出:

&amp;;'&gt;&lt;"

Prototype JS library 也使用了这种转义 HTML 的方法尽管与我给出的简单示例不同。

注意:您仍然需要自己转义引号(双引号和单引号)。您可以使用此处其他人概述的任何方法。

关于javascript - 在 JavaScript 中将特殊字符转换为 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/784586/

相关文章:

javascript - Ion-View 不刷新(Angular UI-Router)

javascript - 强制导向的超链接不起作用

Javascript:innerHTML 对象未填充父对象

javascript - AngularJS 中的自定义和标准多个过滤器

javascript - Apollo 客户端 - 使用对象列表中的缓存结果来响应对单个对象的查询

javascript - 是否有 jQuery 的 .load(); 的 jQuery 事件监听器?

javascript - jQuery sum TD 点击事件

javascript - 如何让对象将自身添加到数组中

javascript - Nodejs 模块导出 TypeError

javascript - 如何在 JavaScript 中打印对象中所有属性的值?