如何解决时间正则表达式

时间:2012-06-12 07:30:31

标签: javascript regex validation

审核Time validation question by Amra

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

  

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

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

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

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

请帮帮我

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

2 个答案:

答案 0 :(得分:1)

[00,30]没有按照您的想法行事。正则表达式中的[]个组是字符类 - 可以匹配的字符集,例如[a-z]匹配单个小写字母,而不是字符串“az”。

请改为尝试:

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

(00|30)匹配0030,其他任何内容 - |都是正则表达式“或”运算符。

答案 1 :(得分:0)

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

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