我正在尝试使用以下正则表达式验证最小1和最大59但未按预期工作。
^[1-5]?[1-9]$
表达式有什么问题?
答案 0 :(得分:2)
它的工作:^([1-5][0-9]|[1-9])$
(@Tushar)
if (/^([1-5][0-9]|[1-9])$/.test(number)) {
// Successful match
} else {
// Match attempt failed
}
更好/更快的方式(没有正则表达式):
function validate(number) {
number = parseInt(number);
return number > 0 && number < 60;
}
for (var i = 0; i < 65; i++) {
console.log(validate(i));
}
测试:
答案 1 :(得分:1)
每个忙于尝试提供解决方案的人都错过了OP提出的真正问题。
表达式有什么问题?
这是你的正则表达式:^[1-5]?[1-9]$
您要做的是匹配范围为1 to 5
的第一位数字(可选)和范围1-9
中的第二位数字。而且,由于您希望匹配1 to 59
中的数字,因此您将缺少一个评论中指出的10,20,30,40,50
之类的数字。