如何在 JavaScript 中将特殊字符转换为 HTML?
例子:
-
&
(&符号)变为&
. -
"
(双引号)变为"
什么时候ENT_NOQUOTES
未设置。 -
'
(单引号)变为'
仅当ENT_QUOTES
已设置。 -
<
(小于)变为<
. -
>
(大于)变为>
.
最佳答案
在我看来,最好的方法是使用浏览器的内置 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('&;\'><"'));
输出:
&;'><"
Prototype JS library 也使用了这种转义 HTML 的方法尽管与我给出的简单示例不同。
注意:您仍然需要自己转义引号(双引号和单引号)。您可以使用此处其他人概述的任何方法。
关于javascript - 在 JavaScript 中将特殊字符转换为 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/784586/