要获取 aaaaaaaa 前面的<a 的地址
我写的 正则式代码如下   var p1 = /[\s\S]*<a href="([\s\S]*?)"[\s\S]*?aaaaaaaa/im;
   p1.exec(s);
   var sIndexUrl = RegExp.$1;由于有多个<a 这个正则式效率很低,哪位兄弟能帮我改进下吗?

解决方案 »

  1.   


       var sss=s.substr(0,s.indexOf("aaaaaaaa"));
       var sse=sss.substr(sss.lastIndexOf("<a"));
       var p1 = /[\s\S]*<a href="([\s\S]*?)"/im;
       p1.exec(sse);
       var sIndexUrl = RegExp.$1;
    改进了下.
      

  2.   

    楼主取链接的 href 操作dom就可以了。
      

  3.   

    不是IE里面使用的
    直接写的.JS文件
    我放在服务器上定时执行的,不能使用DOM
      

  4.   

    试试这个var s = "<a href='http://www.feipinku.com'>aaaaa</a>";
    var re = /^\s*(<a href=\')(.+)\'>a{5}<\/a>$/i;
    alert(s.replace(re,"$2"));
      

  5.   


    楼主试下效率吧var p1 = /<a[^>]*?href="([^"]*)"[^>]*>(?:(?!<\/?a)[\s\S])*<\/a>((?:(?!<\/?a)[\s\S])*)aaaaaaaa/i;
      

  6.   

    兄弟
    我要的是在上千个 超链接中提取一个文字为aaaaaaaa的超链接的地址
    比如输入:<a href="/Html/6/66445/"></a>
      <strong><a href="/Html/7/66445/"><font color="006699">aaaaaaaa</font></a></strong></td>
    var p1 = /<a[^>]*?href="([^"]*)"[^>]*>(?:(?!<\/?a)[\s\S])*<\/a>((?:(?!<\/?a)[\s\S])*)aaaaaaaa/i;
    好像不行吧var s = "<a href='http://www.feipinku.com'>aaaaa</a>";
    var re = /^\s*(<a href=\')(.+)\'>a{5}<\/a>$/i;
    alert(s.replace(re,"$2"));像aaaaaaa之间有<font>也不行啊
      

  7.   


    原来是在链接文本内,那可以再简单些var p1 = /<a[^>]*?href="([^"]*)"[^>]*>(?:(?!<\/?a|aaaaaaaa)[\s\S])*aaaaaaaa/i;
      

  8.   

    看懂了
    中间不能有</a啊