Именованные группы регулярного выражения
Именованная группа позволяет обращаться к захваченному фрагменту через понятное имя, а не только числовой индекс.
Назначение
Именованная группа позволяет обращаться к захваченному фрагменту через понятное имя, а не только числовой индекс.
Как это работает
Синтаксис группы включает ?<name>, а результат доступен через groups у найденного совпадения. Если совпадения нет, exec возвращает null, поэтому доступ к groups требует проверки.
Пример
const pattern=/^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/;
const match=pattern.exec("2026-08-30");
console.assert(match.groups.year==="2026");
console.assert(pattern.exec("30/08/2026")===null);
Что должно получиться
Год доступен по имени year, а строка с другим разделителем не совпадает. Пример намеренно не объявляет строку проверенной календарной датой.
Граница применения и частая ошибка
Совпадение с шаблоном даты не доказывает существование такой календарной даты. Регулярное выражение проверяет форму записи, а диапазоны и календарные правила нужно проверить отдельно.
Самостоятельная проверка
Разберите строку вида YYYY-MM-DD и неверно оформленную строку. Затем попробуйте дату 2026-99-99 и объясните, почему одной формы недостаточно для валидации.
JavaScript в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.