RexExp min和max

时间:2016-02-14 16:10:24

标签: javascript regex

我正在尝试使用以下正则表达式验证最小1和最大59但未按预期工作。

 ^[1-5]?[1-9]$

表达式有什么问题?

2 个答案:

答案 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));
}

测试:

enter image description here

答案 1 :(得分:1)

每个忙于尝试提供解决方案的人都错过了OP提出的真正问题。

  

表达式有什么问题?

这是你的正则表达式:^[1-5]?[1-9]$

您要做的是匹配范围为1 to 5的第一位数字(可选)和范围1-9中的第二位数字。而且,由于您希望匹配1 to 59中的数字,因此您将缺少一个评论中指出的10,20,30,40,50之类的数字。