Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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,并将纯文本链接转换为标记_Javascript_Jquery_Html_Escaping - Fatal编程技术网

javascript:转义html,并将纯文本链接转换为标记

javascript:转义html,并将纯文本链接转换为标记,javascript,jquery,html,escaping,Javascript,Jquery,Html,Escaping,我使用下划线js方法来转义HTML: var __entityMap = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': '&quot;', "'": '&#39;', "/": '&#x2F;' }; String.prototype.escapeHTML = function() { return String(this).replace(/[&<>"'\/

我使用下划线js方法来转义HTML:

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

String.prototype.escapeHTML = function() {
return String(this).replace(/[&<>"'\/]/g, function(s) {
    return __entityMap[s];
});
}
问题是,这也逃逸/这使我的自动链接器不再工作

我正在使用:


我应该如何解决此问题

正如评论中所建议的那样——没有理由转义一个正斜杠——只要将它从转义字符列表中删除,就不会遇到任何问题。您只需要转义字符,如果保留完整的话,这些字符将破坏代码,并且正斜杠不太可能导致任何问题


逃避前向斜杠,这可能就是为什么在某个时候建议您这样做的原因——但该建议是用于从不受信任的源加载内容。如果您正在加载自己编写的模板,您不必担心会对自己运行跨站点脚本攻击。

我不明白为什么/首先需要转义?只需将其从_entityMap中删除即可。我确实从不可信的来源加载。我不确信-他们的推理是,正斜杠被包括在内,因为它有助于结束HTML实体不是一个强参数,除非我遗漏了一些东西,否则没有其他引用?。如果我们后退一步。。。根本问题是,转义html实际上只需要转义&-引号不会造成任何伤害,但它完全取决于嵌入结果字符串的上下文。在我看来,正斜杠是完全没有必要的,而且它只会破坏第三方图书馆的正常运作,不会污染网络。是的,我倾向于这样说,因为它只会与你已经逃离的其他角色组合在一起很危险,找一些复杂的解决方法是不值得的——在这种情况下,只需对推荐的列表做一个例外,因为你知道你正在逃避这个问题。