var context=["<script language=\"javascript\" src=\"xxx.js\"><\/script>","<script language=\"javascript\"> code..<\/script>"]; var reg=/<script language="javascript"(\s+src="xxx.js"){0,}>.*<\/script>/; for(var i in context){ alert(context[i]); alert(reg.test(context[i])); } 这样试试
var reg=/<script language="javascript"(\s+src="xxx.js")?>.*<\/script>/; 一个script里应该最多只有一个src 貌似
var patt = /<script.*?t"([\W]src=.*.js*?\")*[\W]{1}(.*?)<\/script>/g;已测试
var reg=/<script language="javascript"(\s+src="xxx.js"){0,}>.*<\/script>/;
for(var i in context){
alert(context[i]);
alert(reg.test(context[i]));
}
这样试试
一个script里应该最多只有一个src 貌似
var patt = /<script.*?t"([\W]src=.*.js*?\")*[\W]{1}(.*?)<\/script>/g;已测试
非常不错,要的就是这个效果,不过请问你正则/<script.*?t"中的t"是什么意思,这个好像没见过,不太明白,我把.*?t"替换为[^\>]*?不行了..
别单看那个t,t后面有个"号,表示t"这串指的是 language="javascript"中最后两个字符。
<script src="xx.js" language="javascript" >test</script>
<script!@#language="javascript"!@#src="xx.js" >test</script>
还有很多,只写几个典型的。
现变更为同样适合适合9楼 事例的匹配
var patt = /<script(.*(src=.*\.js\S*['"]))|((src=.*\.js\S*['"]).*)|.*\>(.*)<\/script>/g
T[3]--> src="xxx.js"
T[6]--> code...
lz最好了解下js的正则表达式中的exec的用法,上面的表达式并不适合一个字符串中同时存在2个及以上的<script....>