var number = '731231';
var myRegex = /[0-6]/;
console.log(myRegex.test(number));
任何人都能解释一下吗?
IMO写为[0-6]的正则表达式只会检查0到6之间的数字,但在上面的情况下,大小为731231的值也会被评估为真
答案 0 :(得分:6)
当任何此类数字存在时,您的正则表达式匹配。如果您只想匹配 这样的数字,请使用
/^[0-6]+$/
匹配一个字符串,其中包含0-6之间的任意数字。如果您想要一个数字,请省略+
:
/^[0-6]$/
答案 1 :(得分:2)
耀应该使用
var myRegex = /^[0-6]$/;
您正在寻找启动 ^ 的字符串,然后包含一个 0..6位立即结束 $
您的实施/[0-6]/
正在字符串中寻找 0..6位 ,这就是 731231 遇到的原因这个标准。
答案 2 :(得分:2)
您正在检查是否存在0到6之间的某个数字,情况就是这样。
var number = '731231';
var myRegex = /^[0-6]+$/;
console.log(myRegex.test(number));
<强>更新强>
但是,如果您希望字符串匹配满足规则0 >= N <= 6
的数字
这就是你想要的
var myRegex = /^[0-6]$/;
答案 3 :(得分:1)
您的正则表达式正在检查字符串中是否出现以下情况之一:
0,1,2,3,4,5或6
这是真的,因为那里有1,2和3。
如果要检查整个字符串是否为数字,则可以使用:
var myRegex = /^[0-9]+$/;