Javascript 如何从HTML字符代码中获取字符?

Javascript 如何从HTML字符代码中获取字符?,javascript,special-characters,html-entities,Javascript,Special Characters,Html Entities,如何转换HTML实体€► ♠到其实际字符€► ♠使用JavaScript document.getElementById("myElement").innerHTML = "&#8364".fromCharCode(); 实际上,请注意,fromCharCode()函数只在String对象上可用,因此它看起来像是Will Morgan所说的: document.getElementById("myElement").innerHTML = String

如何转换HTML实体
€► ♠到其实际字符
€► ♠使用JavaScript

document.getElementById("myElement").innerHTML = "&#8364".fromCharCode();
实际上,请注意,
fromCharCode()
函数只在String对象上可用,因此它看起来像是Will Morgan所说的:

document.getElementById("myElement").innerHTML = String.fromCharCode(8364)

例如:
alert(String.fromCharCode(8364))

其中8364是HTML实体的编号

要自动替换全文,则需要使用以下正则表达式替换示例:

"The price of milk is now €100000.".replace(/&#(\d{0,4});/g, function(fullStr, str) { return String.fromCharCode(str); });
神奇发生在这里:

replace(/&#(\d{1,4});/g,函数(fullStr,code){返回字符串.fromCharCode(code);})


要替换的第一个参数,
/&#(\d{1,4})/g
,指定1到4位数字,并用&#和包围;分别地第二个参数,
function(fullStr,code)[…]
进行替换,其中
code
是数字。

您可以通过
innerHTML
使用浏览器的内置HTML解析器,这将具有处理所有HTML实体的优势,而不仅仅是数字实体。请注意,如果传递给函数的字符串包含HTML标记,则以下操作将不起作用

function convertEntities(html) {
    var el = document.createElement("div");
    el.innerHTML = html;
    return el.firstChild.data;
}

var html = "€ ► ♠ " &";
var text = convertEntities(html); // € ► ♠ " &

String.fromCharCoode()
别忘了它只接受数字。。。i、 e.String.fromCharCode(8364);//非字符串。fromCharCode(€;);这只会替换第一次出现的情况。有没有一种方法可以在此基础上扩展以匹配字符串中多次出现的字符代码?@darudude当然,只需在正则表达式的末尾添加一个
g
标志,使其变得贪婪:
'regex regex'.replace(/regex/g,'bacon')->“培根”