HTML文字列をアンエスケープ
HTML文字列をアンエスケープするには次のような方法で可能です。
関数定義
JavaScript
/**
* HTML文字列をアンエスケープ
* @param {string} str エスケープされたHTML文字列
* @return {string} アンエスケープされたHTML文字列を返す
*/
var unescapeHtml = function(str) {
if (typeof str !== 'string') return str;
var patterns = {
'<' : '<',
'>' : '>',
'&' : '&',
'"' : '"',
''' : '\'',
'`' : '`'
};
return str.replace(/&(lt|gt|amp|quot|#x27|#x60);/g, function(match) {
return patterns[match];
});
};
簡単な解説
HTMLのうち文字実体参照または数値文字参照から<、>、&、"、'、`へ変換します。
エスケープされたHTMLの文字列から、対象のパターンに一致した文字参照を置換するような処理になっています。
使い方
var result = unescapeHtml( convertString );
引数
引数名 | 型 | 説明 | |
---|---|---|---|
第一引数 必須 |
convertString | string | 変換したいHTML文字列 |
戻り値
アンエスケープされた文字列を返します。
サンプルコード
JavaScript
var htmlStr = '<div id="sample"><p class="text">foo<br><a href="https://example.co.jp/?k1=v1&k2=v2" target="_blank">bar</a></p></div>';
var result = unescapeHtml(htmlStr);
alert(result); // <div id="sample"><p class="text">foo<br><a href="https://example.co.jp/?k1=v1&k2=v2" target="_blank">bar</a></p></div>