Regular Expression Match to test for a valid year

Ranhiru Jude Cooray picture Ranhiru Jude Cooray · Dec 7, 2010 · Viewed 134k times · Source

Given a value I want to validate it to check if it is a valid year. My criteria is simple where the value should be an integer with 4 characters. I know this is not the best solution as it will not allow years before 1000 and will allow years such as 5000. This criteria is adequate for my current scenario.

What I came up with is

\d{4}$

While this works it also allows negative values.

How do I ensure that only positive integers are allowed?

Answer

r92 picture r92 · Dec 7, 2010

Years from 1000 to 2999

^[12][0-9]{3}$

For 1900-2099

^(19|20)\d{2}$