しかし、そのまま表示すると文字化けや表示が崩れることがあるため、特殊文字をエスケープ/アンエスケープする必要があります。
今回は、JavaScriptを使用してHTML特殊文字をエスケープ/アンエスケープする方法について紹介します。
=== 目次 ===
HTML特殊文字
エスケープおよびアンエスケープが必要なHTML特殊文字とエスケープ結果の一覧は以下です。| HTML特殊文字 | エスケープ結果 |
| & | & |
| < | < |
| > | > |
| “ | " |
| ‘ | &x27; |
| ` | &x60; |
HTML特殊文字をエスケープ/アンエスケープする方法
JavaScriptにはPHPのようなHTML特殊文字をエスケープおよびアンエスケープする関数は用意されていません。よって、愚直に以下のように変換します。
function encodeHTMLSpecialWord(str) {
return str
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/\"/g, """)
.replace(/\'/g, "'")
.replace(/`/g, "`");
};
function decodeHTMLSpecialWord(str) {
return str
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, '"')
.replace(/'/g, "'")
.replace(/`/g, "`");
};