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: работа с датой и временем

  • 0 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

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

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

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