这个js的正则表达为什么搞不动用innerHTML得到字符串?

各位大侠,帮忙看下这个js的正则表达为什么搞不动用innerHTML得到字符串?
用var tStr = "https:2222";都可以搞,
用innerHTML得到字符串就搞不动,这是为神码?

[code="html"]

https:1111 https: 第0次得到这里 var tStr = "https:2222"; function getElement(){ var reg = /^https?:\d*/g; var tes = "https:234324, http:"; var scr =document.getElementsByTagName("SCRIPT"); for(var i=0;i<scr.length;i++){ window.alert(scr[i].innerHTML); //这句可以得到 //window.alert(reg.exec(tStr+scr[i].innerHTML)); //这句为什么得到null window.alert(reg.exec(scr[i].innerHTML));} }







为什么正则无法解析innerHTML获取的字符串?


[/code]

/^https?:\d*/g
你这个是已https开头的啊
而innerHTML拿到的是这个
"\r\nhttps:1111 https: 第0次得到这里"
你自己打开调试看看就知道啦

楼主要得到的是什么?https:1111可以拿到啊

分析一下你这个正则表达式吧:
[quote]var reg = /^https?:\d*/g;[/quote]
这里匹配了一个开始,就是说 匹配的字符串必须以http或https开头,:数字。
第一次得到:“https:1111 https: 第0次得到这里”是没错的。而第二次,scr[i].innerHTML=“var tStr = "https:2222"; ....”
这个字符串是以var开头的,所以没有匹配上。
如果你想得到所有 http或https:数字的字符串,那么用这个正则表达式:
[quote]var reg = /https?:\d*/g;[/quote]
试试。