我正在寻找一种方法来使用普通的JavaScript或jQuery将HTML实体数字转换为字符。如何使用纯JavaScript或jQuery将HTML实体编号转换为字符?
例如,我有一个字符串,它看起来像这样(谢谢你,jQuery的朋克!)
Range1-of-5
而我需要的是:
Range1-of-5
我发现字符串。 fromCharCode()我可以用十进制值来获取字符,但是我希望看看是否有其他人有解决方案,然后才能重新发明轮子。 :)
我正在寻找一种方法来使用普通的JavaScript或jQuery将HTML实体数字转换为字符。如何使用纯JavaScript或jQuery将HTML实体编号转换为字符?
例如,我有一个字符串,它看起来像这样(谢谢你,jQuery的朋克!)
Range1-of-5
而我需要的是:
Range1-of-5
我发现字符串。 fromCharCode()我可以用十进制值来获取字符,但是我希望看看是否有其他人有解决方案,然后才能重新发明轮子。 :)
jQuery的方式看起来更好,但这里如果你有兴趣纯JS版:
function decode(encodedString) {
var tmpElement = document.createElement('span');
tmpElement.innerHTML = encodedString;
return tmpElement.innerHTML;
}
decode("Range1-of-5");
无需使用jQuery这个简单的任务:
'Range1-of-5'.replace(/&#(\d+);/g, function(match, number){ return String.fromCharCode(number); })
相同的原理可应用于& #xHHHH;和&name;实体。
这工作,但我探索的角落案件我担心它不会很好地扩展到不同的用例。我确实鼓励了它,因为它让我觉得非常有用,只是不如我想我可能需要超出上述初始用例那样强大。 – amber 2011-05-27 20:39:54
这不是一个实体,而是一个[正常字符引用](http://www.w3.org/TR/html401/charset.html#h-5.3.1)。 – Gumbo 2011-05-27 17:27:33