<span dir="ltr">SQL语法范例手册</</span>
<span dir="ltr">科学出版社, 2007</span>
<span dir="ltr">7030190076, 9787030190079</span>一长串这样的文字,在js里面通过正则把里面的字符串取出来,
结果应该如下:
SQL语法范例手册
科学出版社, 2007
7030190076, 9787030190079最好是放在一个数组里面。

解决方案 »

  1.   

    var str = '<span dir="ltr">SQL语法范例手册</</span><span dir="ltr">科学出版社, 2007</span><span dir="ltr">7030190076, 9787030190079</span>';
    alert(str.replace("<[^>]+>",""));
      

  2.   

    <html>
    <head>
    <script type="text/javascript">window.onload=function(){
    var str=document.getElementsByTagName('body')[0].innerHTML;//获取本页面HTML标签为参考例子!
    var reg=/^<span[^>]+>(.*?)<\/span>$/gim;
    var arr=reg.exec(str);
    alert(arr[1]); //输出匹配值!
    }
    </script>
    </head>
    <body>
    <span dir="ltr">SQL语法范例手册</span>
    <span dir="ltr">科学出版社, 2007</span>
    <span dir="ltr">7030190076, 9787030190079</span>
    </body>
    </html>
      

  3.   

    var str='..';
    var reg=/<span[^>]+>(.*?)<\/span>/gi,temp,res=[];
    while(temp=reg.exec(str)){
        res.push(temp[1])
    }
    alert(res.join("\n"))
      

  4.   


    var reg=/^<span[^>]+>(.*?)<\/span>$/; //用\1 取出
    var arr=reg.exec(str);
      

  5.   


    var reg=/^<span[^>]+>(.*?)<\/span>$/gim;
    var result = reg.match(str);
    for(var i=0; i<result.length; i++)
       alert(result[i]);
      

  6.   

    测试通过,4#的方法可行,我的方法忘记循环了,没有测试,太粗心了!SORRY!
      

  7.   

    休正一下我3#的方法:补上循环,完整的测试代码如下:
    <html>
    <head>
    <script type="text/javascript">
    window.onload=function(){
    var str=document.getElementsByTagName('body')[0].innerHTML;
    var reg=/^<span[^>]+>(.*?)<\/span>$/gim;
    var arr1=[];
    while(arr=reg.exec(str))
    {
     arr1.push(arr[1]);
    }
    alert(arr1.join('\n'));
    }</script>
    </head>
    <body>
    <span dir="ltr">SQL语法范例手册</span>
    <span dir="ltr">科学出版社, 2007</span>
    <span dir="ltr">7030190076, 9787030190079</span>
    </body>
    </html>
      

  8.   


    1、删除HTML标签后得到字符串:str.replace(/<[^>]+>/, "")2、提取字符串放在一个数组里:str.match(/[^>]+(?=<)/g)
      

  9.   

    哦,上面“1、”写掉了个“g”:str.replace(/<[^>]+>/g, "")