求js正则表达式只能输入0到15的数字!

JavaScript010

求js正则表达式只能输入0到15的数字!,第1张

正确的写法应该是

var p = /^([0-9]|(1[0-5]))$/

里面有几个要点,

1、[0-9]|(1[0-5]) 这里是指明,要么是0-9的单个数字,要么是1开头并且后跟0-5的数字

2、^ 和 $ 夹在前后指明必须完全匹配

为了证明这个正则表达式是正确的,你可以试试在 Chrome 浏览器的控制台里执行下面的小测试程序:

var p = /^([0-9]|(1[0-5]))$/

for (var i = -1i <20++i) {

console.log(i + ' ' + p.test(i))

}

输出为:

1 false

0 true

1 true

2 true

3 true

4 true

5 true

6 true

7 true

8 true

9 true

10 true

11 true

12 true

13 true

14 true

15 true

16 false

17 false

18 false

19 false

看到了吧,只有0到15是通过的,其他都是不通过的。

只匹配一位数字:^[0-9|10]$匹配任意位数字:^[0-9|10]*$[]的含义是只能选一个匹配,而0-9是一个范围用|和10隔开,就等于[]能匹配1-10的任意一个。^是脱字符代表开始,$美元符代表结束。*的含义是前边的表达式可以有0-N个。