Регулярное выражение для даты (ДД/ММ/ГГГГ)

Используйте /^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|1[0-2])\/\d{4}$/, чтобы проверить, что вся строка является корректной датой в формате ДД/ММ/ГГГГ. Каждый пример ниже проверен по шаблону, и его можно открыть в Regex Tester с уже загруженными образцами.

Обновлено

/^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|1[0-2])\/\d{4}$/
Открыть в Regex Tester
ВводРезультат
30/10/2026✓ Совпадение
01/12/2000✓ Совпадение
31/01/1999✓ Совпадение
10/30/2026✗ Нет совпадения
1/5/2026✗ Нет совпадения
30-10-2026✗ Нет совпадения
32/01/2026✗ Нет совпадения

Как работает шаблон

ЧастьЗначение
(?:0[1-9]|[12]\d|3[01])День 01–31 в первую очередь (порядок, принятый в Великобритании, Европе, Индии и Австралии)
\/Косая черта
(?:0[1-9]|1[0-2])Месяц 01–12
\d{4}$Четырёхзначный год

Примеры кода

JavaScript

const re = /^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|1[0-2])\/\d{4}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:0[1-9]|[12]\d|3[01])/(?:0[1-9]|1[0-2])/\d{4}', value))

PHP

preg_match('/^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|1[0-2])\/\d{4}$/', $value) === 1;

Примечания и ограничения

Замените \/ на [\/.-], чтобы принимались также 30.10.2026 и 30-10-2026. Количество дней в каждом месяце не проверяется.

Часто задаваемые вопросы

Какое регулярное выражение для даты (ДД/ММ/ГГГГ)?
/^(?:0[1-9]|[12]\d|3[01])\/(?:0[1-9]|1[0-2])\/\d{4}$/ — шаблон проверяет всю строку целиком. Что делает каждая часть, см. в таблице выше.
Какие примеры совпадают?
Из проверенных примеров совпадают: 30/10/2026, 01/12/2000, 31/01/1999. Остальные не совпадают.
Как протестировать это регулярное выражение?
Нажмите «Открыть в Regex Tester» — шаблон, флаги и тестовый текст загрузятся автоматически, а совпадения будут подсвечиваться по мере редактирования.