// 字符串反转义
function enXssHtml(text) {
const matchList = {
"<": "<",
">": ">",
"&": "&",
"": '""',
""": '"',
"'": "'",
}
let regStr = "(" + Object.keys(matchList).toString() + ")"
// ↑ ------------【 提取匹配列表key值 】.【组数转字符串】
regStr = regStr.replace(/,/g, ")|(")
// ↑ 通过匹配将其更新为正则的字符串类型
const regExp = new RegExp(regStr, "g")
// ↑ ------- 字符串 转 正则 方法
return text.replace(regExp, (match) =>matchList[match])
// ↑ ------ 替换方法 (正则, 当前key =>返回当前被匹配的key值)
}
// 字符串反转义
function deXssHtml(text) {
const matchList = {
"<": "<",
">": ">",
"&": "&",
'"': '"',
'"': '"',
"'": "'",
}
let regStr = "(" + Object.keys(matchList).toString() + ")"
// ↑ ------------【 提取匹配列表key值 】.【组数转字符串】
regStr = regStr.replace(/,/g, ")|(")
// ↑ 通过匹配将其更新为正则的字符串类型
const regExp = new RegExp(regStr, "g")
// ↑ ------- 字符串 转 正则 方法
return text.replace(regExp, (match) =>matchList[match])
// ↑ ------ 替换方法 (正则, 当前key =>返回当前被匹配的key值)
}
给个示例代码:String.fromCharCode(Number("☠".substring(2,6)))
// 另一些可能用到的函数方法
// 十进制转十六进制
(100).toString(16) // 返回 64
// 十六进制转十进制
parseInt("64", 16) // 返回 100
字符转义,还是如楼上所说,用 innerHTML 来的比较快
=======修改分割线==============
用 innerHTML 转实体的代码示例:
var obj = document.createElement("div")
obj.innerHTML = " "
obj.childNodes[0].nodeValue // 返回 “ ”
本回答由网友推荐
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)