regex for date

match a date dd/mm/yyyy

(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[13-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})
01/01/2000 31/01/2000 32/01/2000 01-1-2000 1.1.2019

Matches a date in the format dd/mm/yyyy , dd-mm-yyyy or dd.mm.yyyy

This expression can be used to find or validate a date field and the most accepted form of date can have DD-MM-YYYY format with the seperators: - , / and .


Cheatsheet

expr usage
/[0-9]/ matches all digits
/(hello){4}/ matches "hellohellohellohello"
/i am a (cat|dog|whale) person/ matches "i am a cat person", "i am a dog person" and "i am a whale person"
/z(?=a)/ positive lookahead... matches the "z" before the "a" in pizza but not the first "z"
iHateRegex
by geon