var s="<div name='apple' class='fruit'> 苹果 </div> <div name='mianbao' class='food'> 面包 </div><div name='banana' class='fruit'>香蕉 </div>"
返回所有name

解决方案 »

  1.   

    \<div[^\>]+name=\'(?<name>[^']+)\'
      

  2.   


    var reg=/\<div[^\>]+name=\'(?<name>[^']+)\'/前面回复发出来有多余空格了
      

  3.   

    (?<name>[^']+)
    这个?是什么意思啊
      

  4.   

        var s=" <div name='apple' class='fruit'> 苹果 </div> <div name='mianbao' class='food'> 面包 </div> <div name='banana' class='fruit'>香蕉 </div>" 
        var reg=new RegExp();
        var obj=[];
        while(s.match(/(<div.*?name\='([^']+)'.*?<\/div>)/)){
            obj[obj.length]=RegExp.$2;
            s=s.replace(RegExp.$1,"")
        }
        alert(obj);
      

  5.   


    就是给这个捕捉起个名字 这里的名字是“name”
      

  6.   

    var reg=/\<div[^\>]+name=\'(?<name>[^']+)\'/这个正则直接报错啊
      

  7.   


    var s = "<div name='apple' class='fruit'> 苹果 </div> <div name='mianbao' class='food'> 面包 </div> <div name='banana' class='fruit'>香蕉 </div>";
    var reg = /<div[^>]*name\s*=\s*('|")([^'"]*)\1[^>]*>/ig;
    var re = arr = [];
    while((re = reg.exec(s)) != null) {
    arr.push(re[2]);
    }
    alert(arr)
      

  8.   

    var reg = /<.*?name=\'(.+?)\'.*?<\/.+?>/g;
      

  9.   

    js里不支持命名捕获组
     var s = "<div name='apple' class='fruit'> 苹果 </div> <div name='mianbao' class='food'> 面包 </div> <div name='banana' class='fruit'>香蕉 </div>";
     var reg=/<div\s+name\s*?=['"'\s]*(\w+)/ig,res=[],t;
     while((t=reg.exec(s))!=null){
        res[res.length]=t[1];
     }
     document.write(res.join("<br/>"));
      

  10.   

    引入Jquery.js$(document).ready(function(){
      var divName; 
      $("div").each(function(){
        divName += $(this).attr("name")
      })
      document.write(divName);
    })
    这样就不用正则了
      

  11.   

    其实你直接用document.getElementByTagName("div")也能拿到一个数组吧