0

我正在寻找与 html 正文中的字符串匹配但不影响出现在标题标签中的字符串的正则表达式,例如我有:

words = new Array("Android","iOS");
change = new Array ("http://www.google.com","http://www.apple.com");
obj = document.getElementsByTagName("body")[0]; 
// search and replace
for (i in words) {
    re = new RegExp("\\b("+words[i]+")\\b", "ig");
    str = obj.innerHTML.replace(re,'<a href="'+change[i]+'">$1</a>');
    document.getElementsByTagName("body")[0].innerHTML = str;
}
  }

iOS' by <a href='http://www.apple.com'>iOS</a>所以我有一个单词列表,JS 正在从 HTML Body中替换这些单词(例如,replace )。但是:它也替换了 HTML 代码,例如 ' <title = 'iOS'> ->this become <title='a href='http://www.apple.com'>iOS</a>'. 如何更改<title='...>正则表达式并且内容不会更改

亚当

4

1 回答 1

0

使用前瞻来确保目标不在标签内(即下一个尖括号是 a <):

re = new RegExp("\\b(" + words[i] + ")\\b(?=[^>]*<)", "ig");
于 2013-10-31T15:33:56.580 回答