BytePane

Date (YYYY-MM-DD) Regex Pattern

Validates dates in ISO 8601 format (YYYY-MM-DD) with valid month (01-12) and day (01-31) ranges.

Date & Time
Intermediate
Difficulty
Universal
Language
none
Flags
// Regular Expression
/^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/

Live Regex Tester

Pattern Breakdown

^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$
Character class [ ]
Group ( )
Quantifier { }
Anchor ^ $
Repetition * + ?
Escape \
Alternation |
Any char .

Code Examples

JavaScript

const regex = /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/;
const test = "2026-03-07";
console.log(regex.test(test)); // true

// Extract matches
const matches = test.match(regex);
console.log(matches);

Python

import re

pattern = r'^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$'
test = "2026-03-07"
match = re.search(pattern, test)
print(match)  # Found!

Go

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile(`^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$`)
    fmt.Println(re.MatchString("2026-03-07")) // true
}

Common Use Cases

ISO 8601 date validationdatabase inputAPI payloads

Match Examples

InputResult
2026-03-07Match
2026-13-07No Match

About the Date (YYYY-MM-DD) Regex

Validates dates in ISO 8601 format (YYYY-MM-DD) with valid month (01-12) and day (01-31) ranges.

Regular expressions (regex) are powerful pattern matching tools used across virtually all programming languages. The date (yyyy-mm-dd) pattern is classified as intermediate difficulty in the date & time category. It works in all major programming languages.

When using this regex, always consider edge cases and test thoroughly with real-world data. Use the interactive tester above to validate the pattern against your specific inputs before deploying to production.

Need More Regex Patterns?

Browse our complete library of 100+ regex patterns with interactive testers.

Frequently Asked Questions

What is the Date (YYYY-MM-DD) regex pattern?

Validates dates in ISO 8601 format (YYYY-MM-DD) with valid month (01-12) and day (01-31) ranges.

How do I use the Date (YYYY-MM-DD) regex?

Use the pattern /^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$/ in your code. In JavaScript: new RegExp('^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$', ''). Test it above with your own input.

What does this Date (YYYY-MM-DD) regex match?

This pattern matches: "2026-03-07". It does NOT match: "2026-13-07". ISO 8601 date validation, database input, API payloads.

Is the Date (YYYY-MM-DD) regex beginner-friendly?

This pattern is rated Intermediate. It uses some advanced features like character classes and quantifiers.

What languages support the Date (YYYY-MM-DD) regex?

This pattern works in all major programming languages including JavaScript, Python, Java, C#, Go, Ruby, PHP, and more. Syntax may vary slightly between regex engines.

Can I modify the Date (YYYY-MM-DD) regex for my use case?

Yes! Use the interactive tester above to modify the pattern and test with your own data. Common modifications include making it case-insensitive (add 'i' flag), matching globally (add 'g' flag), or adjusting character classes.

Related Tools