Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

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

Регулярное выражение — это шаблон, который описывает, как выглядит нужный текст: «три цифры подряд», «слово из латинских букв», «строка, похожая на email». С его помощью проверяют ввод, находят и заменяют фрагменты. Синтаксис поначалу выглядит загадочно, но базовых символов немного.

Шаблон и метод test

Регулярное выражение записывают между двумя косыми чертами. Метод test() отвечает, есть ли в строке совпадение с шаблоном:

const pattern = /кот/;
 
console.log(pattern.test('Наш кот спит')); // true

Простой шаблон из букв ищет ровно эти буквы подряд, как includes(). Сила регулярных выражений — в специальных символах.

Классы символов и количество

Специальные символы описывают не конкретную букву, а целую группу. Число после символа в фигурных скобках или знак + задают, сколько раз он повторяется:

const zip = /^\d{5}$/;
 
console.log(zip.test('10115')); // true
console.log(zip.test('1011'));  // false

Символ ^ означает начало строки, а $ — её конец: шаблон целиком должен совпасть со всей строкой.

СимволЧто означает
\dлюбая цифра
\wлатинская буква, цифра или _
\sпробельный символ
.любой символ
[абв]один из перечисленных
+один раз или больше
*ноль раз или больше
{3}ровно три раза
^ и $начало и конец строки

Флаги

После закрывающей черты пишут флаги — буквы, которые меняют поведение поиска. Флаг i отключает учёт регистра, а g ищет все совпадения, а не только первое:

console.log(/привет/i.test('ПРИВЕТ, мир')); // true

Поиск совпадений

Метод строки match() с флагом g возвращает массив всех найденных фрагментов. Если совпадений нет, он вернёт null:

const text = 'Заказы 12, 7 и 105';
 
const numbers = text.match(/\d+/g);
 
console.log(numbers.join(', ')); // 12, 7, 105

Замена по шаблону

replace() принимает регулярное выражение вместо строки. С флагом g заменяются все совпадения:

const phone = '+7 (900) 123-45-67';
 
console.log(phone.replace(/\D/g, '')); // 79001234567

Заглавная \D — противоположность \d: «любой символ, кроме цифры». Так из номера удаляется всё лишнее.

Группы

Круглые скобки выделяют в шаблоне группу — часть совпадения, которую можно получить отдельно. Без флага g метод match() возвращает массив, где после всего совпадения идут группы:

const date = '2026-03-08';
 
const parts = date.match(/(\d{4})-(\d{2})-(\d{2})/);
 
console.log(parts[1]); // 2026
console.log(parts[3]); // 08

Частая ошибка

Точка, плюс, скобки и некоторые другие знаки в шаблоне — специальные символы. Чтобы найти сам символ, перед ним ставят обратную косую черту:

console.log(/a.c/.test('abc'));  // true
console.log(/a\.c/.test('abc')); // false
console.log(/a\.c/.test('a.c')); // true

Шаблон /a.c/ совпал с abc, потому что точка означает «любой символ». Ищете точку в адресе сайта или в цене — пишите \..

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.