Регулярные выражения JavaScript
Разбираемся в особенностях написания регулярных выражений и способах их применения в JavaScript. Регулярные выражения в JS, как и в других языках, – это обработка текста с помощью заданных шаблонов (масок). Для записи шаблонов используют PCRE-синтаксис. Каждый шаблон регулярного выражения в JS является объектом. Для создания регулярного выражения используйте один из способов: Регулярное выражение объявляется в коде программы с помощью шаблона. С помощью шаблонов программа сравнивает строки на совпадение. Шаблон заключается в символы Простые шаблоны находят только прямое совпадение. Шаблон Специальные символы определяют дополнительные условия для поиска подстроки. Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека фронтендера» Интересно, перейти к каналу Следующие символы указывают, к какому набору символов относится шаблон: Флаги используются как дополнительные сведения о шаблоне. Можно использовать как по одному, так и вместе в произвольном порядке. В JS доступно 5 флагов: Указать флаги можно или в конце литерала, или добавить в конструктор RegExp. Методы обработки и поиска совпадений шаблона регулярного выражения со строкой текста: Пример использования этих методов: Также регулярные выражения используются вместе со строчными функциями в JS: *** В этой статье мы познакомились со способами создания регулярных выражений, скобочными символами в шаблонах, а также узнали методы для работы с регулярным выражением и целевой строкой.О регулярных выражениях
Создание регулярных выражений в JS
let reg = /hello/;
let
reg = new RegExp('hello');Написание шаблона регулярного выражения
/../
и состоит из букв и цифр: /hello/
. Или содержит специальные символы: *
, +
и другие.Использование простых шаблонов
/hello/
соответствует только такому же порядку букв и нижнему регистру. В строке Mum, hello! How are you? будет совпадение со словом hello. Но в строке Hello! How are you? нет совпадения из-за верхнего регистра первой буквы h.Использование специальных символов в шаблонах
Общие специальные символы:
^
– начало ввода.$
– конец ввода строки. – для указания, что специальный символ является частью строки, а не шаблона. Для поиска знака звездочка
*
– шаблон будет выглядеть: /*/
, или для экранирования самого символа косой черты .
.
– один любой символ.Соответствие набору символов
w
— соответствие буквам, цифрам и символам подчеркивания.W
— обратный эффект: соответствие всему, что не относится к буквам, цифрам или символам подчеркивания.d
– соответствие цифрам 0-9.D
– соответствие всему, но не цифрам 0-9.s
– соответствие символам проблема.S
– соответствие не символам пробела.[…]
– соответствие любому из символов, указанному в скобках.[^…]
— соответствие всем символам, не указанных в скобках.Указание количества символов для соответствия
+
– повторение символа минимум от одного раза.*
– повторение символа от нуля.?
– появление символа в указанной позиции нуль или один раз.|
– соответствует логическому ИЛИ. /hello|bye/
— или hello, или bye.{n}
– n вхождений символа в строке.{m, n}
– вхождения от m до n раз символа в строке.Скобочные группы в регулярных выражениях:
(XYZ)
– группировка символов или скобочная группа. Найденная строка в скобках запоминается для дальнейшего использования.(?:X)
– группировка символов без запоминания совпадений.X(?=Y)
– соответствует X, за которым следует Y.X(?!Y)
– соответствует X, за которым не следует Y.Использование флагов в регулярных выражениях
g
– поиск всех совпадений в строке.i
– регистронезависимый поиск подстроки.m
— определяет текст как множество строк и ищет совпадения маркеров ^
, $
для каждого начала и конца строки в тексте.u
– запись в регулярное выражение Unicode.y
— поиск с символа на позиции lastindex в строке.
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
replace()
, split()
, match()
. Пример использования этих методов смотрите в статье 40 основных методов для работы со строками в JS.Материалы по теме
- 0 views
- 0 Comment