Регулярное выражение для даты (MM/DD/YYYY)

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

Обновлено

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

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

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

Примеры кода

JavaScript

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

Python

import re

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

PHP

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

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

Чтобы принимать также однозначные месяцы и дни, замените 0[1-9] на 0?[1-9] в обоих местах. Количество дней в месяце не проверяется, поэтому после этого проверьте саму дату.

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

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