关于javascript:JS处理HTML转义字符

33次阅读

共计 673 个字符,预计需要花费 2 分钟才能阅读完成。

因为小程序无奈通过生成 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]
      })
    }

正文完
 0