Regex to allow only number between 1 to 12
I am trying (12)|[1-9]\d?
but its not working, please help as i am new to regular expression
Regex to allow only number between 1 to 12
I am trying (12)|[1-9]\d?
but its not working, please help as i am new to regular expression
Something like
^([1-9]|1[012])$
^
Anchors the regex at start of the string[1-9]
Matches 1
to 9
|
Alternation, matches the previous match or the following match.
1[012]
Matches 10
, 11
, or 12
$
Anchors the regex at the end of the string.Regex Demo
Here's some readymade regex expressions for a bunch of different numbers within a certain range:
| Range | Label | Regex |
| --------- | ------------ | ------------------------------------ |
| 1 to 12 | hour / month | 1[0-2]|[1-9] |
| 1 to 24 | hour | 2[0-4]|1[0-9]|[1-9] |
| 1 to 31 | day of month | 3[01]|[12][0-9]|[1-9] |
| 1 to 53 | week of year | 5[0-3]|[1-4][0-9]|[1-9] |
| 0 to 59 | min / sec | [1-5]?[0-9] |
| 0 to 100 | percentage | 100|[1-9]?[0-9] |
| 0 to 127 | signed byte | 12[0-7]|1[01][0-9]|[1-9]?[0-9] |
| 32 to 126 | ASCII codes | 12[0-6]|1[01][0-9]|[4-9][0-9]|3[2-9] |
Try something like this:
^(1[0-2]|[1-9])$
1[0-2] : first charcter must be 1 and second character can be in range from 0 to 2
[1-9] : numbers from 1-9
^ : start of string
$ : end of string
I think this should work
\[1-9]|1[0-2]\