【发布时间】:2013-03-28 15:57:05
【问题描述】:
我想用另一个文本替换所有匹配的文本,但如果该文本在alt 或href 属性中,我不想替换。
示例:
<p>Hello world!</p>
<p><img src="hello.jpg" alt="Hello"/></p>
Hello
我的代码:
var replacepattern = new RegExp('Hello', 'gi');
newcontent = newcontent.replace(replacepattern, function(match, contents, offset, s) {
var link = 'demo.com'
index++;
if (link != '') {
return '<a href="' + link + '">' + match + '</a>';
} else {
return match;
}
});
它仅适用于文本。如何匹配除img src、alt 等以外的文本?
【问题讨论】:
-
通过“等”你的意思是任何 html 属性?
-
你必须使用 HTML 解析器,而不是正则表达式才能确定我会这么想。
-
@Blazemonger 是的,用文本替换,而不是属性
-
嘿!我找到了解决方案。使用这个正则表达式:
new RegExp('hello(?![^<]*>)',"gi");
标签: javascript jquery regex