Share This
Связаться со мной
Крути в низ
Categories
//Регулярные выражения JavaScript

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

Разбираемся в особенностях написания регулярных выражений и способах их применения в JavaScript.

reguljarnye vyrazhenija javascript ee06476 - Регулярные выражения JavaScript

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

Регулярные выражения в JS, как и в других языках, – это обработка текста с помощью заданных шаблонов (масок). Для записи шаблонов используют PCRE-синтаксис. Каждый шаблон регулярного выражения в JS является объектом.

Создание регулярных выражений в JS

Для создания регулярного выражения используйте один из способов:

  1. С помощью литералов /…/ – обозначений регулярных выражений. Пример: let reg = /hello/;
  2. Через специальный объект RegExp: let reg = new RegExp('hello');

Написание шаблона регулярного выражения

Регулярное выражение объявляется в коде программы с помощью шаблона. С помощью шаблонов программа сравнивает строки на совпадение.

Шаблон заключается в символы /../ и состоит из букв и цифр: /hello/. Или содержит специальные символы: *, + и другие.

Использование простых шаблонов

Простые шаблоны находят только прямое совпадение. Шаблон /hello/ соответствует только такому же порядку букв и нижнему регистру. В строке Mum, hello! How are you? будет совпадение со словом hello. Но в строке Hello! How are you? нет совпадения из-за верхнего регистра первой буквы h.

Использование специальных символов в шаблонах

Специальные символы определяют дополнительные условия для поиска подстроки.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека фронтендера» Интересно, перейти к каналу

Общие специальные символы:

  1. ^ – начало ввода.
  2. $ – конец ввода строки.
  3. – для указания, что специальный символ является частью строки, а не шаблона. Для поиска знака звездочка * – шаблон будет выглядеть: /*/, или для экранирования самого символа косой черты .
  4. . – один любой символ.

Соответствие набору символов

Следующие символы указывают, к какому набору символов относится шаблон:

  1. w — соответствие буквам, цифрам и символам подчеркивания.
  2. W — обратный эффект: соответствие всему, что не относится к буквам, цифрам или символам подчеркивания.
  3. d – соответствие цифрам 0-9.
  4. D – соответствие всему, но не цифрам 0-9.
  5. s – соответствие символам проблема.
  6. S – соответствие не символам пробела.
  7. […] – соответствие любому из символов, указанному в скобках.
  8. [^…] — соответствие всем символам, не указанных в скобках.

Указание количества символов для соответствия

  • + – повторение символа минимум от одного раза.
  • * – повторение символа от нуля.
  • ? – появление символа в указанной позиции нуль или один раз.
  • | – соответствует логическому ИЛИ. /hello|bye/ — или hello, или bye.
  • {n} – n вхождений символа в строке.
  • {m, n} – вхождения от m до n раз символа в строке.

Скобочные группы в регулярных выражениях:

  • (XYZ) – группировка символов или скобочная группа. Найденная строка в скобках запоминается для дальнейшего использования.
  • (?:X) – группировка символов без запоминания совпадений.
  • X(?=Y) – соответствует X, за которым следует Y.
  • X(?!Y) – соответствует X, за которым не следует Y.

Использование флагов в регулярных выражениях

Флаги используются как дополнительные сведения о шаблоне. Можно использовать как по одному, так и вместе в произвольном порядке.

В JS доступно 5 флагов:

  1. g – поиск всех совпадений в строке.
  2. i – регистронезависимый поиск подстроки.
  3. m — определяет текст как множество строк и ищет совпадения маркеров ^, $ для каждого начала и конца строки в тексте.
  4. u – запись в регулярное выражение Unicode.
  5. y — поиск с символа на позиции lastindex в строке.

Указать флаги можно или в конце литерала, или добавить в конструктор RegExp.

         let reg1 = /hello/i; let reg2 = new RegExp('hello','i');      

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

Методы обработки и поиска совпадений шаблона регулярного выражения со строкой текста:

  • test() – метод проверяет на совпадение подстроки и шаблона, возвращает значение true или false.
  • search() – также ищет совпадения и возвращает индекс при успешном результате или -1 в противном случае.
  • exec() – метод находит подстроки заданного шаблона в целевой строке и в результате возвращает массив с результатами, null – в противном случае.

Пример использования этих методов:

         let string1 = 'Hello, my friend! I\'m really glad to see you'; let reg1 = /friend\!/; console.log(reg1.test(string1)); // true  let string2 = 'Hello, friend! Are you real friend\?'; let reg2 = /friend/; console.log(string2.search(reg2)); // 7  let reg3 = /(fr.)/; console.log(reg3.exec(string2)[0]); // fri      

Также регулярные выражения используются вместе со строчными функциями в JS: replace(), split(), match(). Пример использования этих методов смотрите в статье 40 основных методов для работы со строками в JS.

***

В этой статье мы познакомились со способами создания регулярных выражений, скобочными символами в шаблонах, а также узнали методы для работы с регулярным выражением и целевой строкой.

Материалы по теме

  • ☕ Учебник по JavaScript: основные операторы
  • ☕ Учебник по JavaScript: ООП на простых примерах
  • ☕ Учебник по JavaScript: работа с датой и временем

  • 2 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close