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转义字符的主要内容,如果未能解决你的问题,请参考以下文章
PHP前台提交json,双一号被转义了,json有一万字符,JS无法替换处理
xss 防止攻击,恶意用户将输入的信息当成html或js代码执行,办法是将用户输入的信息改为text格式,或特殊符号转义