字符串如下:<a href="http://www.163.com/" target="_blank">163.com</a><a href="123.html">>>本地文件</a>
<a href="本地文件3 a.html">本地文件3(链接内有空格)</a>
<a href="javascript:show('abc');">javascript事件1</a>
<a href="javascript:show(1);">javascript事件2</a>
<a href='http://www.qq.com' target='_blank'>qq.com</a><a href='mailto:[email protected]'>email</a>
<a href=http://www.tianya.cn target=_blank>天涯</a>
要求取得如下:http://www.163.com/      163.com
123.html                 >>本地文件
本地文件3 a.html         本地文件3(链接内有空格)
javascript:show('abc');  javascript事件1
javascript:show(1);      javascript事件2
http://www.qq.com        qq.com
mailto:[email protected]     email
http://www.tianya.cn     天涯
有高手的请支招

解决方案 »

  1.   

    <a href='javascript:show("福建");'>javascript事件3</a>
    漏了一个,也需要取得
      

  2.   


    var s = "<a href=\"http://www.163.com/\" target=\"_blank\">163.com</a><a href=\"123.html\">>>本地文件</a>\
    <a href=\"本地文件3 a.html\">本地文件3(链接内有空格)</a>\
    <a href=\"javascript:show('abc');\">javascript事件1</a>\
    <a href=\"javascript:show(1);\">javascript事件2</a>\
    <a href='http://www.qq.com' target='_blank'>qq.com</a><a href='mailto:[email protected]'>email</a>\
    <a href=http://www.tianya.cn target=_blank>天涯</a>\
    <a href='javascript:show(\"福建\");'>javascript事件3 </a>";var re = /<a href=('|"|)(.+?)(\1).*?>(.+?)<\/a>/igm;
    i=0
    while((n=re.exec(s))!=null){
       alert(n[2])
       alert(n[4])
    }
      

  3.   

    谢谢了我还加一个url,再帮我看看<a target="_blank" onclick="show();" href=http://www.sina.com.cn>abc</a>你的正则能备注一下说明吗?(\1).*?  像这边的是什么意思呢?
      

  4.   

    \1匹配属性尾部的引号或空,.*?是中间的任何字符直到出现其之后的字符>var s = "<a href=\"http://www.163.com/\" target=\"_blank\">163.com</a><a href=\"123.html\">>>本地文件</a>\
    <a href=\"本地文件3 a.html\">本地文件3(链接内有空格)</a>\
    <a href=\"javascript:show('abc');\">javascript事件1</a>\
    <a href=\"javascript:show(1);\">javascript事件2</a>\
    <a href='http://www.qq.com' target='_blank'>qq.com</a><a href='mailto:[email protected]'>email</a>\
    <a href=http://www.tianya.cn target=_blank>天涯</a>\
    <a href='javascript:show(\"福建\");'>javascript事件3 </a>\
    <a target=\"_blank\" onclick=\"show();\" href=http://www.sina.com.cn>abc </a> ";var re = /<a .*?href=('|"|)?([\S]+)(\1).*?>(.+?)<\/a>/igm;
    while((n=re.exec(s))!=null){
       alert(n[2])
       alert(n[4])
    }
      

  5.   

    <a href=\"本地文件3 a.html\">本地文件3(链接内有空格)</a>改了后这个取得的有问题了
      

  6.   


    var s = "<a href=\"http://www.163.com/\" target=\"_blank\">163.com</a><a href=\"123.html\">>>本地文件</a>\
    <a href=\"本地文件3 a.html\">本地文件3(链接内有空格)</a>\
    <a href=\"javascript:show('abc');\">javascript事件1</a>\
    <a href=\"javascript:show(1);\">javascript事件2</a>\
    <a href='http://www.qq.com' target='_blank'>qq.com</a><a href='mailto:[email protected]'>email</a>\
    <a href=http:\/\/www.tianya.cn target=_blank>天涯</a>\
    <a href='javascript:show(\"福建\");'>javascript事件3 </a>\
    <a target=\"_blank\" onclick=\"show();\" href=http://www.sina.com.cn>abc </a> ";var re = /<a .*?href\s*=\s*(?='|")('|")([^\1]+?)(\1).*?>(.+?)<\/a>/igm;
    while((n=re.exec(s))!=null){
       alert(n[2])
       alert(n[4])
    }
    var re = /<a .*?href\s*=\s*(?!'|")(\S+)\s*.*?>(.+?)<\/a>/igm;
    while((n=re.exec(s))!=null){
       alert(n[1])
       alert(n[2])
    }
      

  7.   

    谢谢了,能再帮忙看一下吗,我又发现了两种情况没办法获取的。
    还有,能写成一块吗? 因为我需要按顺序来取得
    <textarea id="html" style="width:100%;height:200px;"><a href="http://www.163.com/" target="_blank">163.com</a><a href="123.html">>>本地文件</a>
    <a href="本地文件3 a.html">本地文件3(链接内有空格)</a>
    <a href="javascript:show('abc');">javascript事件1</a>
    <a href="javascript:show(1);">javascript事件2</a>
    <a href= 'http://www.qq.com' target='_blank'>qq.com</a><a href='mailto:[email protected]'>email</a>
    <a href=http://www.tianya.cn target=_blank>天涯</a>
    <a target="_blank" onclick="show();" href=http://www.sina.com.cn>abc</a><a href="http://www.alibaba.com/?page=2&show=img">
    <b>test</b>
    </a>
     <a href=http://www.test.com>
     <br>eeeeeeeeee <span>bbb</span>
     </ a></textarea>