var str="abcabc"; 
var reg=/a(.)c/g;
var array=new Array();
var index=0;
str.replace(reg,function($0,$1){
array[index]=$1;
index++;
});
alert(array);

解决方案 »

  1.   

    如:     如果匹配一句 
    var   str   =   "abc"; 
    str.match(/^a(.)c$/) 那$1就是b 那如果我匹配出来的是一个数组 
    var   str   =   "abcabc"; 
    str.match(/a(.)c/); 那怎么循环取$1   ???     谢谢!
    ------------------
    LZ加了起始限定符,本身就不能匹配到一个数组,$1他只能匹配到bcab如果在取出为数组时,你可以split(',')把其分离到数组当中进行处理。
      

  2.   

    var str = "abcadcaecafc"; 
    var arr = str.match(/a(.)c/g); 
    for(var i=0; i<arr.length; i++)
    {
    document.write(arr[i]+"<br>");
    }
    -----------------
    output:
    abc
    adc
    aec
    afc
      

  3.   

    看来大家是误会我的意思了.我是说, 如:<img src="dd.gif"/><img src="dd.gif"/><img src="dd.gif"/>最后匹配得到的结果为:<img src="dd.gif"/>,<img src="dd.gif"/>,<img src="dd.gif"/>
    三个元素不过我在写正则的时候已经把XX.gif打了括号,所以我想用$1直接循环取出来所有的XX.gif
    因为match后的数组是像上面写的,但我只需要$1括号的内容(循环的)一楼的$1不行的,那个$1会一直是最后一将的括号内的内容,比如刚才我写的是abcaec,那么你写的那个$1两个都是e.
      

  4.   

    1楼的谢谢,发帖之前我按你写的那种已经写出来了,只是笨了点写成了RegExp.$1,改了下,已经可以了,写的arguments[1],OK,结帖.