我想检查字段是否是有效时间值(仅为秒)。所以我想接受0到59之间的数字。我出来了:
[0-5][0-9]?
几乎完成了这项工作。但排除数字7-8-9 ...如果用户数字07,它可以工作,但我不想强迫用户数字前0.我尝试过这样的事情:
([0-5][0-9]? | [0-9])
但这不起作用,并产生太多递归调用的错误。
有什么想法吗?
答案 0 :(得分:6)
在您的第二个正则表达式中,您需要从第一部分中删除?
,并将其[1-5]
代替[0-5]
:
[0-9]|[1-5][0-9]
如果您希望足够灵活以同时允许7
和07
,请使用[0-5]
:
[0-9]|[0-5][0-9]
然后,简化上述正则表达式,您可以使用:
[0-5]?[0-9] // ? makes [0-5] part optional
答案 1 :(得分:1)
这应该足够了:[0-5]?\d
但是,如果你想强制执行两位数(即。01
,02
...),你应该只使用[0-5]\d
答案 2 :(得分:0)
如果您想将十位数设为可选,而不是单位位置,请将?
放在那里:
[0-5]?[0-9]
答案 3 :(得分:0)
如果您希望0为可选项,请将?
移至[0-5]
之后。
[0-5]?[0-9]
应该这样做。