Regex for number check below a value

regex

Solution

Regex is not suited to dealing with ranges like this, but anyway this should work:

/^(0?[1-9]|1[012])$/

Description:

^       match start of the string
(0?     optional zero
[1-9]       any number between 1 and 9
|1[012])    or match 1 followed by either a 0, 1, 2 i.e. 10, 11, 12.
$           match end of string

Problem

I'm still a beginner at regex so this is a little above me currently. I need to validate a number input to two characters and it can't be more than the value 12. The two numbers easy: ``` /^\d{1,2}$/ ``` Then check that if there are two numbers then the first must be either 0 or 1, and the second must be either 0, 1, or 2. That part I don't know how to express, regularly... And also if possible I would like to have it in single regex statement. Any help appreciated.

Original source