0

在审查了 Amra 的时间验证问题后

我已经为我的需要创建了一个正则表达式

var re = /^\s*([01]?\d|1[0-2]):?([00,30]\d)\s*$/;

我的意图是只允许一个小时和半小时的间隔时间

即:“12:00”、“01:00”、“12:30”、“01:30”等

这个正则表达式几乎可以工作,它在“01:10”时返回假,但当我输入“01:01”......“01.09”时它返回值,它必须是假的。

请帮我

请详细描述这个正则表达式..

4

2 回答 2

1

[00,30]不做你认为它做的事。[]正则表达式中的组是字符类- 可以匹配的字符集,例如[a-z]匹配单个小写字母,而不是字符串“az”。

试试这个:

var re = /^\s*(0?\d|1[0-2]):?(00|30)\s*$/;

(00|30)匹配其中一个0030没有其他 -|是正则表达式“或”运算符。

于 2012-06-12T07:32:56.857 回答
0

如果您想允许 24 小时的时间,您可以将 Amber 的答案稍微更改为:

/^\s*([0-1]?\d|2[0-3]):?(00|30)\s*$/
于 2012-06-19T08:51:16.820 回答