Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查字符串是否已被HTML转义(JS)_Javascript_Html - Fatal编程技术网

Javascript 检查字符串是否已被HTML转义(JS)

Javascript 检查字符串是否已被HTML转义(JS),javascript,html,Javascript,Html,我有以下HTML转义代码: var __entityMap = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': '&quot;', "'": '&#39;' }; String.prototype.escapeHTML = function() { return String(this).replace(/[&<>"']/g, function(

我有以下HTML转义代码:

var __entityMap = {
  "&": "&amp;",
  "<": "&lt;",
  ">": "&gt;",
  '"': '&quot;',
  "'": '&#39;'
};

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而混乱,那么您的程序的逻辑有问题。通过允许错误的程序逻辑来掩盖这一点是错误的做法。