// 字符串反转义
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值)
}
你好。我也遇到同样的问题,在页面上的一个textarea框里面输入html代码,
点击保存后,能得到转义后的html代码。但是默认的情况下当做html输出了。
首先看数据库中保存是什么内容。
另外,HTML转义很正常,比如空格,看HTML代码就是&nbsp (去掉两个空格)。
如果我的回答没能帮助您,请继续追问。
通过Javascript模拟显示即可:
function html2Escape(sHtml) { return sHtml.replace(/[<>&"]/g,function(c){return {'<':'&lt','>':'&gt','&':'&amp','"':'&quot'}[c]})}//转义符换成普通字符
function escape2Html(str) { var arrEntities={'lt':'<','gt':'>','nbsp':' ','amp':'&','quot':'"'} return str.replace(/&(lt|gt|nbsp|amp|quot)/ig,function(all,t){return arrEntities[t]})}
// &nbsp转成空格
function nbsp2Space(str) { var arrEntities = {'nbsp' : ' '} return str.replace(/&(nbsp)/ig, function(all, t){return arrEntities[t]})}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)