如何将
'
等 HTML 实体解码为其原始字符?
在浏览器中,我们可以创建一个 DOM 来实现这个技巧 (see here),或者我们可以使用一些库,例如 he
在 NodeJS 中,我们可以使用一些第三方库,例如 html-entities
如果我们想使用纯 JavaScript 来完成这项工作怎么办?
在 stackoverflow 中有许多类似的问题和有用的答案,但我找不到一种既适用于浏览器又适用于 Node.js 的方法。所以我想分享我的意见。
我在下面发表了我的意见作为答案。我希望它能对某人有所帮助。 :)
最佳答案
在 stackoverflow 中有许多类似的问题和有用的答案,但我找不到一种既适用于浏览器又适用于 Node.js 的方法。所以我想分享我的意见。
对于像
这样的 html 代码<
>
'
甚至汉字。
我建议使用这个功能。 (受其他一些答案的启发)
function decodeEntities(encodedString) {
var translate_re = /&(nbsp|amp|quot|lt|gt);/g;
var translate = {
"nbsp":" ",
"amp" : "&",
"quot": "\"",
"lt" : "<",
"gt" : ">"
};
return encodedString.replace(translate_re, function(match, entity) {
return translate[entity];
}).replace(/&#(\d+);/gi, function(match, numStr) {
var num = parseInt(numStr, 10);
return String.fromCharCode(num);
});
}
此工具也适用于 Node.js 环境。
decodeEntities("哈哈 '这个'&"那个"好玩<>") //哈哈 '这个'&"那个"好玩<>
作为新用户,我只有 1 个声誉 :(
我无法对现有帖子发表评论或回答,所以这是我现在唯一能做的。
编辑 1
我认为this答案比我的还要好。尽管没有人投他一票。
关于javascript - 一种解码 HTML 实体的简单 JavaScript 方法,适用于浏览器和 Node,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44195322/