Javascript 如何求解时间正则表达式

Javascript 如何求解时间正则表达式,javascript,regex,validation,Javascript,Regex,Validation,审查后 我已经为我的需要创建了一个regexp 变量re=/^\s*([01]?\d|1[0-2]):?([00,30]\d)\s*$/ 我的意图是只允许一个半小时的间隔时间 例如:“12:00”、“01:00”、“12:30”、“01:30”等 这个regexp几乎可以工作,它在“01:10”时返回false,但在我输入“01:01”时返回值…“01.09”,它必须是false 请帮帮我 请详细描述这个regexp。[00,30]并不像您认为的那样[]regexp中的组是字符类-可以匹配的字符

审查后

我已经为我的需要创建了一个regexp

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

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

例如:“12:00”、“01:00”、“12:30”、“01:30”等

这个regexp几乎可以工作,它在“01:10”时返回false,但在我输入“01:01”时返回值…“01.09”,它必须是false

请帮帮我


请详细描述这个regexp。

[00,30]
并不像您认为的那样<代码>[]regexp中的组是字符类-可以匹配的字符集,例如
[a-z]
匹配单个小写字母,而不是字符串“a-z”

请尝试以下方法:

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

(00 | 30)
00
30
匹配,除此之外,没有其他内容-
是正则表达式“或”运算符。

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

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

请描述我的变量re=/^\s*(0?\d|1[0-2]):?(00 | 30)\s*$<代码>^\s*=不是空白的0-n倍<代码>(0?\d | 1[0-2])=要么
0?\d
要么
1[0-2]
<代码>0?\d=一个
0
0或1次,后跟一个数字<代码>1[0-2]=a
1
后接a
0
、a
1
或a
2
<代码>:?=a
0或1次
(00 | 30)
=要么
00
要么
30
^…$
=类型应匹配所有字符串,而不是任何字符串substring@sp00m谢谢你的解释谢谢Amber的回答