I want to check if a field is a valid time value (just seconds). So I want to accept the numbers from 0 to 59. I came out with this:
[0-5][0-9]?
which almost does the job. But excludes the digits 7-8-9... It works if the user digit 07, but I don't want to force the user to digit the first 0. So I tried something like this:
([0-5][0-9]? | [0-9])
but this does not works and produces an error of too many recursive calls.
Any idea?
In your 2nd regex, you need to remove that ?
from the first part, and make it [1-5]
instead of [0-5]
:
[0-9]|[1-5][0-9]
And if you want to be flexible enough to allow both 7
and 07
, then use [0-5]
:
[0-9]|[0-5][0-9]
And then, simplifying the above regex, you can use:
[0-5]?[0-9] // ? makes [0-5] part optional
This should be sufficient: [0-5]?\d
However if you want to enforce two digits (ie. 01
, 02
...) you should just use [0-5]\d
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With