Friday, September 27, 2013

javascript regex validate years in range

I have input field for year & I need a regex for validation it.
I have such code: ^([12]d)?(dd)$.
But I want allow to validate only years in certain range (1990-2010, for example). How can I do it?

Edit. range must be 1950-2050

Try this:

1990 – 2010:

/^(199d|200d|2010)$/

1950 – 2050:

/^(19[5-9]d|20[0-4]d|2050)$/

Other examples:

1945 – 2013:

/^(194[5-9]|19[5-9]d|200d|201[0-3])$/

1812 – 3048:

/^(181[2-9]|18[2-9]d|19dd|2d{3}|30[0-3]d|304[0-8])$/

Basically, you need to split your range into effortless “regexable” chunks:

1812-3048: 1812-1819 + 1820-1899 + 1900-1999 + 2000-2999 + 3000-3039 + 3040-3048    regex: 181[2-9]    18[2-9]d   19dd      2d{3}      30[0-3]d   304[0-8]

No comments:

Post a Comment