honjarake blog

自分用にテキトーにまとめる

JavaScript HTMLエスケープとHTMLデコード

JavaScript 文字列のエスケープについて - honjarake blog
前回の件の続き
結局、デコードは凝ったことをやめ、replaceした
特殊記号エスケープはCSSセレクタ用にピンポイントで使う

/* escape */
// HTMLエスケープ
function NNSH_escapeHTML(str) {
  return str.replace(/[&"<>,']/g, function (c) {
    console.log('esc:' + c);
    return {
      '&': '&amp;',
      '"': '&quot;',
      '<': '&lt;',
      '>': '&gt;',
      ',': '&#044;',
      '\'': '&#039;'
    }[c];
  });
}
// 特殊記号エスケープ
function NNSH_escapeEx(str) {
  return str.replace('\\', '\\\\')
  .replace('\'', '\\\'')
  .replace('"', '\\"');
}
/* decode */
function NNSH_decodeHTML(str) {
  return str .replace(/&lt;/g, '<') .replace(/&gt;/g, '>') .replace(/&quot;/g, '"') .replace(/&#039;/g, '\'') .replace(/&#044;/g, ',') .replace(/&amp;/g, '&');
}