如何在javascript代码中替换非法字符?我找到了很多解决方案来将它们从字符串中剥离出来,但没有一个能够真正保留字符串。
这里有一个示例行:
ContextMenuStrip
所以在我的函数中,只要下面的字符串在字符串中,它就会使我的“for”循环无法正常工作:<,>,/
感谢任何帮助。
的问候,
答案 0 :(得分:1)
您可以使用此类内容删除非法字符:
var entityMap = {
"&": "&",
"<": "<",
">": ">",
'"': '"',
"'": ''',
"/": '/'
};
function escapeHtml(string) {
return String(string).replace(/[&<>"'\/]/g, function (s) {
return entityMap[s];
});
}
然后:
document.getElementById("popupcontent").innerHTML += "<img class='popupbanner' src='" + escapeHtml(eventcontent[date][i]['bannerimg']) + "' />";
来自:Escaping HTML strings with jQuery
注意:尽管上面的解决方案上面的SO帖子的标题不使用Jquery,只是本机Javascript
答案 1 :(得分:0)
您可以使用replace()
功能替换javascript中的字符。请参阅this stackoverflow post。
答案 2 :(得分:0)
您可以让浏览器自动为您解决问题:
function escape(string) {
var target = document.createElement('div');
target.appendChild(document.createTextNode(string));
return target.innerHTML;
}
<小时/> 然后使用它:
var escapedString = escape(eventcontent[date][i]['bannerimg']);
document.getElementById("popupcontent").innerHTML += "<img class='popupbanner' src='" + escapedString + "' />";