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