3 に答える
An example would be: alert(String.fromCharCode(8364));
Where 8364 is the number of the HTML entity.
To replace a full body of text automatically then you will need to use this regular expression replacement example:
"The price of milk is now €100000.".replace(/&#(\d{0,4});/g, function(fullStr, str) { return String.fromCharCode(str); });
The magic happens here:
replace(/&#(\d{1,4});/g, function(fullStr, code) { return String.fromCharCode(code); });
The first argument to replace, /&#(\d{1,4});/g
, specifies 1 to 4 digits surrounded by &# and ; respectively. The second parameter, function(fullStr, code) [...]
does the replacement, where code
is the digits.
ブラウザの組み込み HTML パーサーを 経由innerHTML
で使用できます。これには、数値エンティティだけでなく、すべての HTML エンティティを処理できるという利点があります。関数に渡された文字列に HTML タグが含まれている場合、次のコードは機能しないことに注意してください。
function convertEntities(html) {
var el = document.createElement("div");
el.innerHTML = html;
return el.firstChild.data;
}
var html = "€ ► ♠ " &";
var text = convertEntities(html); // € ► ♠ " &
document.getElementById("myElement").innerHTML = "€".fromCharCode();
実際には、関数は String オブジェクトでのみ使用できるため、 Will Morganが言っfromCharCode()
たことのようになります。
document.getElementById("myElement").innerHTML = String.fromCharCode(8364)