2012-05-16 39 views
0

我是正规表达式的新手。如何修改time regexp?

我需要通过regexp检查这个时间18:00(00:00,01:00,05:12,这种格式的任何时间),是正确的还是不正确的。

这里是我的变种:

/[0-9][0-9]:[0-9][0-9]/ 

我可以改变[0-9] [0-9],以类似2 * [0-9] ???

+0

该模式应该匹配'18:00'。请提供更多想要匹配的图案以及任何您不想匹配的图案。 – npinti

+1

我建议阅读[正则表达式教程](http://regular-expressions.info),特别是[限制重复](http://www.regular-expressions.info/repeat.html)。 – Nightfirecat

+0

这将匹配'18:00'。它也将匹配“99:00”,“00:99”和“99:99”,它们不是24小时有效的。这是一个理想的行为? (见@ npinti的回答。) –

回答

3

如果你想特别匹配18:00,你应该使用/^\d{2}:\d{2}$/。迄今为止提供的答案将匹配aaa12:99ddd^$是锚,并将指示正则表达式特定匹配给定的字符串。

如果您经过24小时验证正则表达式,您可以使用此:/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/(取自here)。

+0

感谢您的24小时格式.. –

0

您可以通过添加重复条款进行修改:

/^[0-9]{2}:[0-9]{2}/ 

但你应该添加的起始和结束的条款:

/^[0-9]{2}:[0-9]{2}$/ 
+0

有什么问题。 r.test(“108000000:0000”)=> true –

+0

你用什么编程语言来使用这个正则表达式? –

+0

我想它是[0-9] {2}:[0-9] {2}而不是/ [0-9 {2}]:[0-9] {2}/ – gout

1

你也可以写这样的:/^\d{2}:\d{2}$/

+0

是的。这样可行。 –

+0

不,它是错误的,它接受25:66 – gout