var s="@2+@3+@4-(8+@5)*0.2"
我要使用match()将有@后面的数字提取出来,求match()的正则表达式
结果为 2,3,4,5

解决方案 »

  1.   

    javascript不支持?<=,取出的数据还需要去掉@。。var s="@2+@3+@4-(8+@5)*0.2"
    var m=s.match(/@\d+/g);
    if(m)for(var i=0;i<m.length;i++)m[i]=m[i].substring(1)
    alert(m)
      

  2.   

    var s="@2+@3+@4-(8+@5)*0.2";
    var $r = /\@\d+/g;
    var $m = s.match($r);
    var $len = $m.length;
    var $mm=[];
    for(var i=0;i<$len;i++){
    $mm.push(String.prototype.slice.call($m[i],1));
    }
      

  3.   

    var s="@2+@3+@4-(8+@5)*0.2";
    var reg = /@(\d+)/g;
    var arr,gols=[];
    while(arr = reg.exec(s)) {
        gols.push(arr[1]);
    }
    alert(gols);
      

  4.   

    var str = "@2+@3+@4-(8+@5)*0.2";
    var reg = /@(\d+)/g;
    var result = [];
    str.replace(reg,function($0,$1){
    result.push($1);
    });
    alert(result);