/
Вопросы и ответы
/
JavaScript
/

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

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

год назад

Nikolai Gagarinov

Ответы

1

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

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

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

    • Литерал:
      const regex = /шаблон/;
    • Конструктор RegExp:
      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
  2. exec(): Метод exec выполняет поиск совпадений с регулярным выражением и возвращает массив с результатами или null, если совпадений нет.

    Пример:

    const regex = /foo/;
    const result = regex.exec('foo bar');
    
    console.log(result); // ['foo', index: 0, input: 'foo bar', groups: undefined]
  3. 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']
  4. 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.'
  5. 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

6 месяцев назад

Maksim Litvinov