2017-05-26 65 views
0

如何解码像 '到其原始字符的HTML实体?解码HTML实体的普通JavaScript方式,适用于浏览器和节点

在浏览器中,我们可以创建一个DOM这样的伎俩(see here),或者我们可以使用一些库,例如he

在的NodeJS我们可以使用一些第三方的lib像html-entities

如果我们想使用普通的JavaScript来完成这项工作?

在stackoverflow中有很多类似的问题和有用的答案,但我无法找到一种方式浏览器和Node.js。所以我想分享我的意见。

我已经发布我的意见作为下面的答案。我希望这可以成为一个人的助手。 :)

+3

https://stackoverflow.com/questions/18749591/encode-html-entities-in-javascript 这应该真的有用。确保编码是相同的 https://github.com/mathiasbynens/he – getjackx

回答

2

在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("&#21704;&#21704;&nbsp;&#39;&#36825;&#20010;&#39;&amp;&quot;&#37027;&#20010;&quot;&#22909;&#29609;&lt;&gt;") //哈哈 '这个'&"那个"好玩<>

作为一个新的用户,我只有1个声望:(

我不能作出评论或回答现有员额所以这是我现在唯一能做的。

编辑1

我觉得this答案的作品比我的还要好。虽然没有人给他了投票。

相关问题