var s = "<script src=1.html></script><script src=2.html></script><script src=3.html></script>";
var reg = /src=(.*?)>/mgi;
var arr = s.match(reg);
var newString="";
for(var i=0;i<arr.length;i++)
{
newString += arr[i];
}
alert(newString);//最近在学习正则表达式,在这里意外的弹出了src=1.html>src=2.html>src=3.html>,而我的本意是弹出:src=1.htmlsrc=2.html>src=3.html,请各位帮我修改一下

解决方案 »

  1.   

    L@_@K
    var s = "<script src=1.html></script><script src=2.html></script><script src=3.html></script>";
    var reg = /src=([^>]*?)>/mgi;
    var arr = s.match(reg);
    var newString="";
    for(var i=0;i<arr.length;i++)
    {
        newString += arr[i];
    }
    alert(newString);
      

  2.   

    不知道你是要那种
    var s = "<script src=1.html></scr"+"ipt><script src=2.html></scr"+"ipt><script src=3.html></scr"+"ipt>";
    var reg = /src=(.*?)>/gi;
    while(reg.exec(s)) {
    alert(RegExp.$1)
    }var s = "<script src=1.html></scr"+"ipt><script src=2.html></scr"+"ipt><script src=3.html></scr"+"ipt>";
    var reg = /src=.*?(?=>)/gi;
    var str = [];
    var tmp;
    while(tmp = reg.exec(s)) {
    str.push(tmp);
    }alert(str)
      

  3.   

    因为不能确定src是什么形式:所以只能用.*去匹配,我觉得这点没错。但为了只获取src=后面的url值,所以加一个 > 进行限定。个人觉得正则写的是没有问题的。改一下就好了: newString += arr[i].replace('>', '');
      

  4.   

    (s.match(/src=(['"]?)[^>]+\1(?=>)/ig) || []).jion('').slice(4).split('src=').join('')BTW:
    http://www.blogjava.net/mxx/archive/2007/09/30/149899.html
    有个练习正则的小工具