JavaScript で HTML の参照文字をアンエスケープするには

March 7, 2019

HTML 文字列のアンエスケープ(unescape)とはタグに使われる文字をエスケープした文字実体参照などを実際の文字などに戻すことです。例えば &lt;b&gt;tilfin&apos;s note&lt;b&gt;<b>tilfin's note<b> と変換します。RSS Feed などに HTML が埋め込まれるときに必要になったりします。

最近のブラウザでは、 DOMParser という HTML/XML/SVG パーサーが実装されているのでこれを使います。

サポート状況 https://caniuse.com/#search=DOMParser

parseFromString メソッドの第2引数に MIME タイプを指定します。

1
2
3
4
function unescapeHTML(escapedHtml) {
const doc = new DOMParser().parseFromString(escapedHtml, 'text/html');
return doc.documentElement.textContent;
}

上記のようにユーティリティ関数を定義して試します。

1
2
> unescapeHTML("<b>tilfin&apos;s note<b>")
"<b>tilfin's note<b>"
JavaScript HTML

tilfin freelance software engineer