var s="123456123";
var pattern=/(1)(2)(3)/gi;
var arr=s.match(pattern);
for(var i=0;i<arr.length;i++)
{
alert(arr[i]);
}
我只要得到pattern中第二个括号的元素,怎么做?如果按我那么做,所有的(123)都会获得,目前我只想要第二年括号里面的内容。
我可以将第三个括号里面改为(?=3),但是js支持前瞻不支持后瞻,对于左面的1我怎么才能不要它
或者是直接有方法光要2?

解决方案 »

  1.   


    var s="123456123"; 
    var pattern=/(1)(2)(3)/gi; 
    var arr=pattern.exec(s); 
    alert(arr[2]);//第几个括号,这里数组就是第几个索引 
      

  2.   

    L@_@Kvar s = "123456123"; 
    var pattern = /1(2)3/gi; 
    var r = s.replace(pattern, "$1");  
    alert(r); // 24562, 是 lz 希望的结果么
      

  3.   


    var s="123456123"; 
    var pattern=/(1)(2)(3)/gi;
    var arr = [];
    s.replace(pattern, function() { arr.push(arguments[2]); });
    for(var i=0;i <arr.length;i++) 

    alert(arr[i]); 

      

  4.   


    var s="123456123";
    var reg=/1(2)3/g;
    var arr = [];
    while((arr = reg.exec(s))){
        alert(arr[1]);
    }