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

如题所述

第1个回答  2013-08-26
正确的写法应该是
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 = -1; i < 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是通过的,其他都是不通过的。本回答被提问者采纳
第2个回答  2013-08-27
/^[0-1]?[0-5]$/
第3个回答  2013-08-26
1[0-5]|[0-9]
相似回答