一种简单的JavaScript方式来解码HTML实体,可以在浏览器和节点上工作
如何解码HTML实体,如一种简单的JavaScript方式来解码HTML实体,可以在浏览器和节点上工作,javascript,html,node.js,decode,Javascript,Html,Node.js,Decode,如何解码HTML实体,如'到其原始字符 在浏览器中,我们可以创建一个DOM来实现这个技巧(),也可以使用一些库,如 在NodeJS中,我们可以使用一些第三方库,比如 如果我们想使用普通JavaScript来完成这项工作呢 stackoverflow中有许多类似的问题和有用的答案,但我找不到一种既适用于浏览器又适用于Node.js的方法。所以我想和大家分享我的观点 我已将我的意见发布在下面作为答案。我希望它能帮助某人。:) stackoverflow中有许多类似的问题和有用的答案,但我找不到
'代码>到其原始字符
在浏览器中,我们可以创建一个DOM来实现这个技巧(),也可以使用一些库,如
在NodeJS中,我们可以使用一些第三方库,比如
如果我们想使用普通JavaScript来完成这项工作呢
stackoverflow中有许多类似的问题和有用的答案,但我找不到一种既适用于浏览器又适用于Node.js的方法。所以我想和大家分享我的观点
我已将我的意见发布在下面作为答案。我希望它能帮助某人。:) stackoverflow中有许多类似的问题和有用的答案,但我找不到一种既适用于浏览器又适用于Node.js的方法。所以我想和大家分享我的观点
用于html代码,如&39代码>甚至汉字。
我建议使用这个功能。(受其他一些答案的启发)
函数解码实体(encodedString){
var translate_re=/&(amp|quot|lt|gt);/g;
变量转换={
“nbsp”:“,
“amp”:“&”,
“quot”:“\”,
“lt”:”
};
返回encodedString.replace(转换、函数(匹配、实体){
返回翻译[实体];
}).替换(/(\d+);/gi,函数(匹配,numStr){
var num=parseInt(numStr,10);
返回字符串.fromCharCode(num);
});
}
此实现也适用于Node.js环境
decode实体(&&21704;&&21704;&39;&36825;&20010;&39;&37027;&20010;&22909;&29609;)//哈哈 '这个'&"那个"好玩代码>
作为一个新用户,我只有1个声誉:(
我不能对现有的帖子发表评论或回答,所以这是我目前唯一能做的
编辑1
我认为答案甚至比我的更好。尽管没有人放弃投票。这应该真的有效。确保编码是一样的,软件包通过遵循HTML规范而不是依赖手动维护的字典来解决这个问题。这将丢失很多HTML实体,例如”
&scaron、
等。所有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);
});
}