如果首先没有转义&符号,为什么类似的转义代码不适用于html元素中的html转义?我把& amp放到第一位后一切正常。
function escapeHtml(unsafe) {
return unsafe
.replace(/&/g, "&")
.replace(/</g, "<")
.replace(/>/g, ">")
.replace(/"/g, """)
.replace(/'/g, "'");
}
由于
答案 0 :(得分:4)
考虑一下会发生什么:
This sentence has an <html> tag in it
如果您先进行<>
替换,最后会使用
This sentence has an <html> tag in it
然后你进行&
替换,然后获取
This sentence has an &lt;html&gt; tag in it
现在您的<
和>
已损坏,因为<>
个字符已经过双重编码。
如果您首先编码&
,那么事情就是“正常工作”。