此问题在此处已有答案:
Unescape HTML entities in JavaScript?(31个答案)
五年前就关门了。
假设我从一个服务请求中得到一些JSON,如下所示:
{
"message": "We're unable to complete your request at this time."
}
我不确定 * 为什么 * 那个撇号是这样编码的('
);我只知道我想破解它。
我想到了一种使用jQuery的方法:
function decodeHtml(html) {
return $('<div>').html(html).text();
}
不过,这看起来(很)老套。有什么更好的方法吗?有“正确”的方法吗?
7条答案
按热度按时间a5g8bdjr1#
这是我最喜欢的解码HTML字符的方法。使用这段代码的好处是标签也被保留了下来。
示例:http://jsfiddle.net/k65s3/
输入:
输出量:
tpgth1q72#
**如果您关心旧版兼容性,请不要使用DOM。**使用DOM解码HTML实体(如当前接受的答案所建议的)会导致在非现代浏览器上跨浏览器结果的差异。
要获得根据HTML标准中的算法对字符引用进行解码的可靠且确定性的解决方案,请使用the he library。
以下是您的使用方法:
免责声明:我是 he 库的作者。
有关更多信息,请参见this Stack Overflow answer。
jc3wubiy3#
如果您不想使用html/dom,可以使用regex。而是沿着这样的东西:
[编辑]
注意:这只适用于数值型html实体,而不适用于类似的东西&oring;。
[编辑2]
修复了函数(一些排印错误),在此处测试:http://jsfiddle.net/Be2Bd/1/
jdgnovmf4#
有JS函数处理 &#xxxx 样式的实体:
function at GitHub
第一个
cwtwac6a5#
jQuery将为您进行编码和解码。
第一个
vptzau2j6#
_.unescape
能满足您的需求https://lodash.com/docs/#unescape
6tr1vspr7#
这是一个很好的答案。你可以用这个来表示角形,就像这样: