как использовать регулярные выражения в javascript для начинающих

Аватар пользователя Maksim Litvinov
Maksim Litvinov
24 февраля 2025

Регулярные выражения — это мощный инструмент для работы с текстом, который позволяет находить, заменять и проверять строки на соответствие определённым шаблонам. В JavaScript они представлены объектом RegExp

Основные понятия

  1. Создание регулярных выражений: Регулярные выражения можно создавать двумя способами:

    • Литерал: javascript const regex = /шаблон/;
    • Конструктор RegExp: javascript const regex = new RegExp('шаблон');
  2. Флаги регулярного выражения: Флаги изменяют поведение регулярных выражений. Наиболее распространенные флаги:

    • i — игнорировать регистр.
    • g — глобальный поиск (найти все совпадения, а не только первое).
    • m — мультистрочный режим.

Пример:

   const regex = /abc/gi;

Основы синтаксиса

  1. Метасимволы:

    • . — любой символ (кроме новой строки).
    • \d — любая цифра (аналогично [0-9]).
    • \D — любой нецифровой символ.
    • \w — любой алфавитно-цифровой символ (аналогично [a-zA-Z0-9_]).
    • \W — любой неалфавитно-цифровой символ.
    • \s — любой пробельный символ (пробел, табуляция, новая строка).
    • \S — любой непробельный символ.
  2. Квантификаторы:

    • * — ноль или более раз.
    • + — один или более раз.
    • ? — ноль или один раз.
    • {n} — ровно n раз.
    • {n,}n или более раз.
    • {n,m} — от n до m раз.
  3. Группировка и альтернативы:

    • (...) — группировка.
    • | — логическое ""или"".

Пример:

   const regex = /(cat|dog)/;

Основные методы для работы с регулярными выражениями

  1. test(): Метод test проверяет, соответствует ли строка регулярному выражению, и возвращает true или false.

Пример:

   const regex = /hello/i;
   console.log(regex.test('Hello')); // true
  1. exec(): Метод exec выполняет поиск совпадений с регулярным выражением и возвращает массив с результатами или null, если совпадений нет.

Пример:

   const regex = /foo/;
   const result = regex.exec('foo bar');

   console.log(result); // ['foo', index: 0, input: 'foo bar', groups: undefined]
  1. match(): Метод String.prototype.match() ищет совпадения в строке по регулярному выражению.

Пример:

   const str = 'The rain in SPAIN stays mainly in the plain';
   const regex = /ain/g;
   const matches = str.match(regex);
   console.log(matches); // ['ain', 'ain', 'ain']
  1. replace(): Метод String.prototype.replace() заменяет совпадения регулярного выражения на новую строку.

Пример:

   const str = 'I like cats and dogs.';
   const newStr = str.replace(/cats/, 'fish');
   console.log(newStr); // 'I like fish and dogs.'
  1. split(): Метод String.prototype.split() разбивает строку на массив подстрок по заданному шаблону.

Пример:

   const str = 'apple,banana,cherry';
   const fruits = str.split(/,/);
   console.log(fruits); // ['apple', 'banana', 'cherry']

Примеры работы

  1. Поиск электронной почты: Регулярное выражение для проверки формата электронной почты:

    const emailRegex = /^[^@\s]+@[^@\s]+\.[^@\s]+$/;
    console.log(emailRegex.test('example@mail.com')); // true
    
  2. Валидация номера телефона: Пример регулярного выражения для простого формата телефона:

    const phoneRegex = /^\+?\d{1,3}[- ]?\d{3}[- ]?\d{3}[- ]?\d{4}$/;
    console.log(phoneRegex.test('+1-234-567-8900')); // true
    
1 0
Познакомьтесь с основами JavaScript бесплатно