rswolff rswolff - 24 days ago 9
Javascript Question

Regular expression for matching time in military (24 hour) format

I would like a JavaScript regular expression that will match time using the 24 hour clock, where the time is given with or without the colon.

For example, I would like to match time in the following formats:


  • 0800

  • 23:45

  • 2345



but that would not match invalid times such as


  • 34:68

  • 5672


Answer

This should do it:

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

The expression reads:

^        Start of string (anchor)
(        begin capturing group
  [01]   a "0" or "1"
  \d     any digit
 |       or
  2[0-3] "2" followed by a character between 0 and 3 inclusive
)        end capturing group
:?       optional colon
(        start capturing
  [0-5]  character between 0 and 5
  \d     digit
)        end group
$        end of string anchor
Comments