<script type="text/javascript"> window.onload = function(){ var s = /^\d{4,16}$/; alert(s.test("11")); }; </script>
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}$/;
<script type="text/javascript">
window.onload = function(){
var s = /^\d{4,16}$/;
alert(s.test("11"));
};
</script>
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}$/;
===============
[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,16} 是限定 \d 的你前面还有个 [1-9]所以写成^[1-9]\d{3,15}$
或
^[1-9]{1}\d{3,15}$