最近在项目中遇到一个个人感觉很有意思的小问题, 后端返回的字符串是 <p style="white-space: normal;">&gt;场次最低金额为100000Rp</p><p style="white-space: normal;"> 这种的, 把括号转成了 特殊字符, 正常情况下应该返回的是 <p>xxxx</p>
当时第一时间想到的是使用v-html, 最后发现 v-html 所展示的内容是 <p> xxx </p> 而我 实际所需要展示的内容是 xxx
解决方法: 其实解决方法很简单, 把 < 进行转义成<>符号 再去使用 v-html
// str 为后端给你包含特殊字符的字符串
const escapeHtml = (str) => {
let arrEntities = {
'lt': '<',
'gt': '>',
'nbsp': ' ',
'amp': '&',
'quot': '"'
};
return str.replace(/&(lt|gt|nbsp|amp|quot);/ig, function (all:any, t) {
console.log(all);
return arrEntities[t];
}
)}