<script>
re = /^.+\s+(.+)\s+(\d+)$/;
str1 = "aa 100";
str2 = "aa aa1  100";
str3 = "aa aa1 aa2  100";
arr = str3.match(re);
alert(RegExp.$1+"\n"+RegExp.$2);</script>

解决方案 »

  1.   

    有点错误,
    <script>
    re = /^(.+\s+)*(.+)\s+(\d+)$/;
    str1 = "aa 100";
    str2 = "aa aa1  100";
    str3 = "aa aa1 aa2  100";
    arr = str2.match(re);
    alert(RegExp.$2+"\n"+RegExp.$3);</script>
    由于前面的aa aa1数目不确定,所以将其使用一个子匹配
    也就是只能使用RegExp.$2和RegExp.$3来取得你想要的
      

  2.   

    <script>
    re = /(\S+)\s+(\d+)$/i;
    str1 = "aa 100";
    str2 = "aa aa1  100";
    str3 = "aa aa1 aa2  100";
    arr = re.exec(str1);
    document.write("<br>str1 = "+str1);
    document.write("<br>$1 = "+RegExp.$1+"<br>$2 ="+RegExp.$2);
    arr = re.exec(str2);
    document.write("<br>str2 = "+str2);
    document.write("<br>$1 = "+RegExp.$1+"<br>$2 ="+RegExp.$2);
    arr = re.exec(str3);
    document.write("<br>str3 = "+str3);
    document.write("<br>$1 = "+RegExp.$1+"<br>$2 ="+RegExp.$2);
    </script>
      

  3.   

    多谢ice_berg16(寻梦的稻草人) 和cuixiping(无心) 这有一个问题
    str1 = "aa 100 aa aa1  100 aa aa1 aa2  100";
    re = /(\S+)\s+(\d+)$/;
    while(re.exec(str1)){
    document.write("<br>$1 = "+RegExp.$1+"<br>$2 ="+RegExp.$2);
    }请问能否连续取得
    aa,100
    aa1,100
    aa2,100
    呢?
      

  4.   

    <script>
    str1 = "aa 100 aa aa1  100 aa aa1 aa2  100";
    re = /(\S+)\s+(\d+)/g;
    while(re.exec(str1)){
    document.write(RegExp.$1+","+RegExp.$2,"<br>");
    }
    </script>