Regex to allow only number between 1 to 12

2020-06-19 04:46发布

问题:

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

回答1:

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



回答2:

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] |


回答3:

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

Demo



回答4:

I think this should work

\[1-9]|1[0-2]\