RegexRef
📅

Regex for ISO Date (YYYY-MM-DD)

Matches dates in YYYY-MM-DD format (basic validation).

The Pattern

/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/
Test in Visualizer ↗

✅ Matches

  • 2023-12-25
  • 1999-01-01

❌ Non-Matches

  • 2023-13-01
  • 23-01-01
  • 2023/12/25

Implement in your Code

javascript
const regex = /^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/;
regex.test('2023-12-25');
python
import re
regex = re.compile(r'^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$')
bool(regex.match('2023-12-25'))
go
import "regexp"
matched, _ := regexp.MatchString(`^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$`, "2023-12-25")
rust
use regex::Regex;
let re = Regex::new(r"^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$").unwrap();
re.is_match("2023-12-25")