一个变量如下:
var str="1,232,21,12212,12";
要求匹配:
输入一个参数:如2,匹配1,232如果是3则匹配1,232,21

解决方案 »

  1.   

    不必正则
    <script type="text/javascript">
    var str = "1,232,21,12212,12";
    var a = str.split(',');
    a.length = 3; //  1 or 2 or 3 ...
    alert( a.join(',') );
    </script>
      

  2.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript">
    var str="1,232,21,12212,12";
    function cc(a){
    a=a-1;
    var reg=new RegExp("\\d(\.\\d+){"+a+"}");
    alert(str.match(reg)[0]);
    }
    </script>
    </head><body>
    <input type="text" onblur="cc(this.value)">
    </body>
    </html>
    这样试试
      

  3.   

    <script type="text/javascript">
        var str = "1,232,21,12212,12";
        var i=3;//变量
        var reg=new RegExp("(\\d+,){"+i+"}");
        str=str.match(reg)[0];
        alert(str.substring(0,str.length-1));
    </script>
      

  4.   


    function sub(s,i){return ""+str.split(",").slice(0,i) }
     
    alert( sub("1,232,21,12212,12" ,2))
      

  5.   


    function sub(s,i){return ""+s.split(",").slice(0,i) }
    alert( sub("1,232,21,12212,12" ,2))
     
      

  6.   

    这个用不着正则吧
    split(',')取前N个就行