Javascript 检查字符串是否已被HTML转义(JS)
我有以下HTML转义代码:Javascript 检查字符串是否已被HTML转义(JS),javascript,html,Javascript,Html,我有以下HTML转义代码: var __entityMap = { "&": "&", "<": "<", ">": ">", '"': '"', "'": ''' }; String.prototype.escapeHTML = function() { return String(this).replace(/[&<>"']/g, function(
var __entityMap = {
"&": "&",
"<": "<",
">": ">",
'"': '"',
"'": '''
};
String.prototype.escapeHTML = function() {
return String(this).replace(/[&<>"']/g, function(s) {
return __entityMap[s];
});
};
var\uuuu entityMap={
“&”:“&;”,
"": "",
'"': '"',
"'": '''
};
String.prototype.escapeHTML=函数(){
返回字符串(this).replace(/[&“']/g,函数){
返回uu entityMap[s];
});
};
但我的问题是,我怎么知道我已经用HTML转义了一个字符串,这样内容就不会因为多次调用escapeHTML()而混乱?你只需要比较实际字符串(由用户输入)和转义字符串(由js输入),如果它们相等,它就已经转义了。你只需要比较实际字符串(由用户输入)和转义字符串(由js输入),如果它们相等,则已转义。我不确定您是否知道。如果某人的原始输入是“&;”(例如,演示如何编写实体),则将其呈现为“&;”是正确的;“尽管它看起来是双重转义的。如果您的内容由于多次调用escapeHTML而混乱,那么您的程序逻辑就有问题。通过允许错误的程序逻辑来掩盖这一点是不好的做法。我不确定您是否知道。如果有人的原始输入是”&;“(例如,演示如何编写实体)?然后将其呈现为“&;amp;”是正确的,尽管它看起来是双重转义的。如果您的内容由于多次调用escapeHTML而混乱,那么您的程序的逻辑有问题。通过允许错误的程序逻辑来掩盖这一点是错误的做法。