2012-04-04 43 views
0

我有一个正则表达式,它接受以下特定格式的时间, “10:00”。正则表达式时间格式?

我想更改正则表达式以适应此格式或仅接受一个短划线(“ - ”)。

这里是表达:

/^((\d)|(0\d)|(1\d)|(2[0-3]))\:((\d)|([0-5]\d))$/ 

回答

1

要点解决这一:

  • 方括号([])用于括字符类。
  • 管道|表示or
  • [\:|-]表示文字为:或连字符-

产生的模式是:

^((\d)|(0\d)|(1\d)|(2[0-3]))[\:|-]((\d)|([0-5]\d))$ 
+0

看起来像我误解了,我以为你的意思是10:00或10-00。道歉! – jon 2012-04-04 12:03:56

+0

你或我误解了这个问题;-) – Joey 2012-04-04 12:04:00

0

只需使用一种替代方案:

^<your regex>$|^-$ 

这无论是在你的格式或单个连字符减号匹配。

0

这个正则表达式需要有这么多的括号吗?

/^(([01]?\d|2[0-3]):[0-5]\d|-)$/