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