Тонкости JS · Урок 87

Регулярные выражения

Регекс — вечные скобки любого кода: валидация, парсинг, замена в редакторах и логи. Разбираем системно, чтобы не копировать «магию» из интернета.

Атомы и квантификаторы

// \d цифра, \w буква/цифра/_, . любой символ, \s пробел
/\d{3}-\d{2}-\d{4}/          // 123-45-6789
/colou?r/                    // color | colour
/[A-Z]{2}[0-9]{4}/           // AB1234 (артикул)
/^https:\/\//                // якорь начала ↑ привязка

Группы, захват и lookahead

const m = "22.05.2026".match(/(\d{2})\.(\d{2})\.(\d{4})/);
// m[1]="22" m[2]="05" m[3]="2026"

"(?:xyz)"    // группа без захвата
"(?=...)""   // впереди есть, но не захватываем (lookahead)
"(?!...)"    // впереди НЕТ (негативный)
💡
Меняйте, а не только находите: "a|b|c".replace(/\|/g, ";"). Флаг g — все совпадения, i — регистронезависимо, s — точка ловит и перенос строки.
ℹ️
Сложную валидацию (например, email/адрес) доверяйте библиотекам, а не гигантскому паттерну. Regex катастрофического отката (catastrophic backtracking) — способ положить CPU одним вводом.