All-in-one Date Validation Regular Expression

This is an All-in-one regular expression to valid dates in mm/dd/yyyy, mm-dd-yyyy, or mm.dd.yyyy format.

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

Matches:

  • 12/08/2022
  • 12-08-2022
  • 12.08.2022

Non-matches:

  • 13/08/2022
  • 12-08/2022
  • 2022/08/12

See Also:

Regex Is Copied!