var s = /^[1-9]\d{4,16}$/;
alert(s.test("1111"));为什么这样返回的是false啊并且当位数大于17的时候,结果才为false!

解决方案 »

  1.   


    <script type="text/javascript">
    window.onload = function(){
    var s = /^\d{4,16}$/; 
    alert(s.test("11"));
    };
    </script>
      

  2.   


    var s = /^[1-9]\d{4,16}$/;^匹配行开头,然后[1-9] 匹配1-9中间的任意一个数,\d{4,16} 匹配数字,位数为4-16,所以你这个匹配的是第一位不为0,然后接着4-16位数字的数所以为5-17位,要小于等于5大于17位才false匹配4-16位数字直接用  /^\d{4,16}$/;
      

  3.   

    /^[1-9]\d{4,16}$/; 
    ===============
    [1-9]匹配1个1-9的数字
    \d{4,16}匹配4至16的0-9的数字
    最小匹配 1+4 = 5 位
    最大匹配 1+16 = 17位alert(s.test("1111")); //只有4位数字,当然false啦
      

  4.   

    lz看样子不想数字0开头,所以应该是/^[1-9]\d{3,15}$/
      

  5.   

    ^[1-9]\d{4,16}$
    {4,16}  是限定  \d  的你前面还有个 [1-9]所以写成^[1-9]\d{3,15}$

    ^[1-9]{1}\d{3,15}$