我试图创建正则表达式,找到包含以下内容的文字:
src
.js
并且不包含问号'?'在同一时间。
例如,我希望我的正则表达式匹配:
src="scripts/test.js"
并且不匹配:
src="Servlet?Template=scripts/test.js"
因为它包含问号标记。
任何人都可以给我相应的正则表达式吗?
非常感谢
答案 0 :(得分:2)
您可以使用此正则表达式:
/\bsrc=(?!.*?\?).+?\.js\b/i
(?!.*?\?)
为负面预测,表示输入字符串中?
后面有src=
时匹配失败。
答案 1 :(得分:1)
您似乎想要parse/make changes to HTML with regex,但由于您使用的是JavaScript,因此您已经拥有了一个功能齐全的DOM解析器。
以下内容如何:
var scripts = document.querySelectorAll('script[src]');
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].getAttribute('src');
if (/\.js$/.test(src) && src.indexOf('?') === -1) {
alert(src);
}
}
示例jsFiddle here。