用合法的字符串替换javascript字符串中的非法字符

时间:2015-05-18 00:38:58

标签: javascript replace character

如何在javascript代码中替换非法字符?我找到了很多解决方案来将它们从字符串中剥离出来,但没有一个能够真正保留字符串。

这里有一个示例行:

ContextMenuStrip

所以在我的函数中,只要下面的字符串在字符串中,它就会使我的“for”循环无法正常工作:<,>,/

感谢任何帮助。

的问候,

3 个答案:

答案 0 :(得分:1)

您可以使用此类内容删除非法字符:

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

  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 + "' />";