JavaScriptでHTMLエスケープする必要があったのでメモ。
一般的なWebアプリの場合、基本的にはサーバサイドでのHTMLエスケープが出来てれば問題無いケースが多い。
ただ、例えばDOMからテキストを取得して再度DOMに突っ込む、みたいな処理をクライアントサイドでやろうとした場合は、JavaScriptで改めてHTMLエスケープする必要がある。
ので、JavaScriptで最低限のHTMLエスケープするメソッド作った。
function escape_html (string) {
if(typeof string !== 'string') {
return string;
}
return string.replace(/[&'`"<>]/g, function(match) {
return {
'&': '&',
"'": ''',
'`': '`',
'"': '"',
'<': '<',
'>': '>',
}[match]
});
}
おしまい。