[JS]HTMLをエスケープ

JSのエスケープ処理

replaseによる置換

Qiita – JavaScriptでHTMLエスケープ処理
http://qiita.com/saekis/items/c2b41cd8940923863791

function escape_html (string) {
  if(typeof string !== 'string') {
    return string;
  }
  return string.replace(/[&'`"<>]/g, function(match) {
    return {
      '&': '&amp;',
      "'": '&#x27;',
      '`': '&#x60;',
      '"': '&quot;',
      '<': '&lt;',
      '>': '&gt;',
    }[match]
  });
}

なにやら難しそうな処理

jQuery(JavaScript)でHTMLエスケープするときの注意点と対処法 | iwb.jp

jQuery(JavaScript)でHTMLエスケープするときの注意点と対処法

上記の引用です。

var escapeHtml = (function (String) {
    var escapeMap = {
        '&': '&amp;',
        "'": '&#x27;',
        '`': '&#x60;',
        '"': '&quot;',
        '<': '&lt;',
        '>': '&gt;'
    };
    var escapeReg = '[';
    var reg;
    for (var p in escapeMap) {
        if (escapeMap.hasOwnProperty(p)) {
            escapeReg += p;
        }
    }
    escapeReg += ']';
    reg = new RegExp(escapeReg, 'g');

    return function escapeHtml (str) {
        str = (str === null || str === undefined) ? '' : '' + str;
        return str.replace(reg, function (match) {
            return escapeMap[match];
        });
    };
}(String));