共计 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] }) }
正文完
发表至: javascript
2021-05-28