JS处理HTML转义字符

Posted phoenixhg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS处理HTML转义字符相关的知识,希望对你有一定的参考价值。

因为小程序无法通过生成dom来处理转义,故这里主要是两块内容。

  • html转义

    function htmlDecode(text) {
      let temp = document.createElement("div")
      temp.innerHTML = text
      const output = temp.innerText || temp.textContent
      temp = null
      return output
    },
  • 正则匹配
    在这里用变量来代替replace//g形式,通过new RegExp()和模板字符串。

    const ESCAPE_CHARACTERS = {
      \'nbsp\': \' \',
      \'lt\': \'<\',
      \'gt\': \'>\',
      \'amp\': \'&\',
      \'apos\': \'\\"\',
      \'ensp\': \'     \',
      \'emsp\': \' \',
      \'quot\': \'"\',
      \'middot\': \'·\',
      \'brvbar\': \'¦\',
      \'mdash\': \'—\',
      \'ndash\': \'–\',
      \'ge\': \'≥\',
      \'le\': \'≤\',
      \'laquo\': \'«\',
      \'raquo\': \'»\',
      \'deg\': \'°\',
      \'bull\': \'•\',
      \'macr\': \'¯\',
      \'#64\': \'@\',
      \'ldquo\': \'“\',
      \'rdquo\': \'”\',
      \'rsquo\': \'‚\',
      \'lsquo\': \'‘\',
    }
    // 处理转义字符
    handleEscapeChar(str) {
      return str.replace(new RegExp(`&(${ Object.keys(ESCAPE_CHARACTERS).join(\'|\') });`, \'g\'), (all, t) => {
        return ESCAPE_CHARACTERS[t]
      })
    }

以上是关于JS处理HTML转义字符的主要内容,如果未能解决你的问题,请参考以下文章

jquery 冒号转义 为啥双斜杠

js处理富文本编辑器转义去除转义去除HTML标签

js,如何防止特殊字符被转义

PHP前台提交json,双一号被转义了,json有一万字符,JS无法替换处理

xss 防止攻击,恶意用户将输入的信息当成html或js代码执行,办法是将用户输入的信息改为text格式,或特殊符号转义

JS post表单特殊字符转义问题