例如
var str = "<p>test</p><a name='mk' id='mk'></a><img src="" /><a name='mk1' id='mk1' href='www.baidu.com'></a><a name='mk2' id='mk2'></a>";我想用正则把所有不包含 href的<a>标签提取出来,得到结果如下str[0] = "<a name='mk' id='mk'></a>";
str[1] = "<a name='mk2' id='mk2'></a>"谢谢大家!

解决方案 »

  1.   

    var str = "<p>test</p><a name='mk' id='mk'></a><img src=\"\" /><a name='mk1' id='mk1' href='www.baidu.com'></a><a name='mk2' id='mk2'></a>";
    var reg = /<a(?:(?!href)[^>])+><\/a>/g;
    var arr = [];
    var temp;
    while(temp = reg.exec(str)){
    arr.push(temp);
    }
    alert(arr);
      

  2.   


    var str = "<p>test</p><a name='mk' id='mk'></a><img src='' /><a name='mk1' id='mk1' href='www.baidu.com'></a><a name='mk2' id='mk2'></a>"; var m=[];
    str.replace(/(<a[^>]*?>.*?<\/a>)/g,function(a,b,c){ if(!/href/.test(b))m.push(b);})
    alert(m)