JS转义反转义HTML标签、特殊字符简单好⽤才是硬道理啊!
html代码转链接业务需要,⽹上捞了很多过滤HTML标签和特殊字符的贴⼦,各有千秋吧!
最后⾃⼰整理了⼀个优雅版。
思路:正则匹配并⽤ replace 函数替换。
优化:划分结构,让资源可配置。
// 抽离成可配置的匹配列表
const matchList = {
'<': '<',
'>': '>',
'&': '&',
'"': '"',
'"': '"',
''': "'",
}
// 字符过滤器
const HtmlFilter = (text) => {
let regStr = '(' + Object.keys(matchList).toString() + ')'
// ↑ ------------【*提取匹配列表key值*】.【组数转字符串】
regStr = place(/,/g, ')|(')
// ↑通过匹配将其更新为正则的字符串类型
const regExp = new RegExp(regStr, 'g')
// ↑ ------- 字符串转正则⽅法
place(regExp, match => matchList[match])
// ↑ ------ 替换⽅法 (正则, 当前key => 返回当前被匹配的key值)
}
export default HtmlFilter
复制代码
测试:<Hello> "World"
结果:<Hello> "World"
结语
这么认真的注释给个赞再⾛呗!
哦~哈哈哈~
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论