javascript正则表达式为00-59(秒)之间的数字

时间:2013-02-12 19:24:15

标签: javascript regex

我想检查字段是否是有效时间值(仅为秒)。所以我想接受0到59之间的数字。我出来了:

[0-5][0-9]?

几乎完成了这项工作。但排除数字7-8-9 ...如果用户数字07,它可以工作,但我不想强迫用户数字前0.我尝试过这样的事情:

([0-5][0-9]? | [0-9]) 

但这不起作用,并产生太多递归调用的错误。

有什么想法吗?

4 个答案:

答案 0 :(得分:6)

在您的第二个正则表达式中,您需要从第一部分中删除?,并将其[1-5]代替[0-5]

[0-9]|[1-5][0-9]

如果您希望足够灵活以同时允许707,请使用[0-5]

[0-9]|[0-5][0-9]  

然后,简化上述正则表达式,您可以使用:

[0-5]?[0-9]   // ? makes [0-5] part optional

答案 1 :(得分:1)

这应该足够了:[0-5]?\d

但是,如果你想强制执行两位数(即。0102 ...),你应该只使用[0-5]\d

答案 2 :(得分:0)

如果您想将十位数设为可选,而不是单位位置,请将?放在那里:

[0-5]?[0-9]

答案 3 :(得分:0)

如果您希望0为可选项,请将?移至[0-5]之后。

[0-5]?[0-9]应该这样做。