Regular Expression Match to test for a valid year
regex, string, string-matching, validation
Solution
You need to add a start anchor `^` as:
^\d{4}$
Your regex `\d{4}$` will match strings that end with 4 digits. So input like `-1234` will be accepted.
By adding the start anchor you match only those strings that begin and end with 4 digits, which effectively means they must contain only 4 digits.
Problem
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?