html转义反转义

html转义反转义,第1张

// 字符串反转义

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值)

}

在网页中编写的多个空格默认情况会自动被浏览器解析为一个空格

在HTML中有些时候,我们不能直接书写一些特殊符号

比如:多个连续的空格,比如字母两侧的大于和小于号

如果我们需要在网页中书写这些特殊的符号,则需要使用html中的实体(转义字符)

实体的语法:

例如:

空格

>大于号

<小于号  

© 版权符号  

出现这个问题其实写接口的同事的疏忽,没有将接口请求中的 Content-Type 设置正确。一般而言客户端需要接口返回JSON数据,下面的两种设置会出现不同的结果

这个类型,接口返回的数据中就会把特殊字符转义成HTML的形式

& 转义成 &amp

页面获取参数的时候会将 ampchannel 当成参数名,从而导致无法获取正确的值

这才是正确的设置,页面拿参数就不会出错了

刚发现的时候一直在查数据源...

多点web的知识还是有好处的...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7001623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-31
下一篇 2023-03-31

发表评论

登录后才能评论

评论列表(0条)

保存