Как работает шаблон
| Часть | Значение |
|---|---|
(?: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 falsePython
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] в обоих местах. Количество дней в месяце не проверяется, поэтому после этого проверьте саму дату.
Тестер регулярных выражений
Введите шаблон и смотрите, как совпадения подсвечиваются прямо в тестовом тексте.