Фронтендщик
Открыть в Telegram
Все для frontend developer, шуточки, тесты, статьи Администрация/Реклама @vtopua
Больше1 108
Подписчики
Нет данных24 часа
-17 дней
-930 день
Архив постов
1 108
Исключения внутри наборов в регулярках JavaScript
Вы уже знаете, что спецсимволы внутри [] становятся обычными символами. Есть, однако, исключения: если вам нужны квадратные скобки как символы внутри [ ] - то их нужно экранировать обратным слешем.
📌 #instr || Фронтендщик
1 108
Пример
В данном примере шаблон поиска выглядит так: буква 'x', затем не цифра, не точка, и не маленькая латинская буква, затем буква 'z':
let str = 'xaz x1z xAz x.z x@z';
let res = str.replace(/x[^\d.a-z]z/g,
'!');
В результате в переменную запишется следующее:
'xaz x1z ! x.z !'
📌 #instr || Фронтендщик
1 108
Группы символов внутри наборов в регулярках JavaScript
Группы символов \d, \D, \w, \W, \s, \Sвнутри [] будут обозначать именно группы, то есть по-прежнему будут командами.
Пример
В данном примере шаблон поиска выглядит так: между иксами любая цифра, либо буква от 'a' до 'f':
let str = 'xax xbx x1x
x2x xhx x@x';
let res = str.replace(/x[\da-f]x/g,
'!');
В результате в переменную запишется следующее:
'! ! ! ! xhx x@x'
📌 #instr || Фронтендщик
1 108
Пример
В данном примере шаблон поиска выглядит так: между иксами любая маленькая латинская буква или точка:
let str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z.]x/g,
'!');
В результате в переменную запишется следующее:
'! ! ! x@x'
📌 #instr || Фронтендщик
1 108
Спецсимволы внутри квадратных скобок в JavaScript
Спецсимволы внутри [ ] становятся обычными символами. Это значит, что их не надо экранировать обратным слешем.
Пример
В данном примере шаблон поиска выглядит так: между иксами любая буква 'a', 'b', 'c', либо точка:
let str = 'xax xbx xcx
xdx x.x x@x';
let res = str.replace(/x[abc.]x/g,
'!');
В результате в переменную запишется следующее:
'! ! ! xdx ! x@x'
📌 #instr || Фронтендщик
1 108
Особенности кириллицы в регулярках JavaScript
Кириллические символы не входят в группу \w. Для их получения нужно использовать группу в квадратных скобках, вот так: [а-я]. Но даже с этой группой есть проблема - сюда не войдет буква 'ё'. Для ее включения нужно сделать вот так: [а-яё].
📌 #instr || Фронтендщик
1 108
Пример
В данном примере шаблон поиска выглядит так: буква 'x', затем НЕ маленькая латинская буква, потом буква 'z':
let str = 'xaz xbz x1z xCz';
let res = str.replace(/x[^a-z]z/g,
'!');
В результате в переменную запишется следующее:
'xaz xbz ! !'
📌 #instr || Фронтендщик
1 108
Пример
В данном примере шаблон поиска выглядит так: буква 'x', затем НЕ буква 'a', не 'b' и не 'c', потом буква 'z':
let str = 'xaz xbz xcz xez';
let res = str.replace(/x[^abc]z/g,
'!');
В результате в переменную запишется следующее:
'xax xbx xcx !'
📌 #instr || Фронтендщик
1 108
Инвертирование наборов символов в регулярках
С помощью шляпки '^' в начале квадратных скобок можно инвертировать желаемое. To есть, если, к примеру, команда [ab] ищет букву 'a' или 'b', то команда[^ab] будет искать все символы, кроме 'a'и 'b'.
📌 #instr || Фронтендщик
1 108
Пример
В данном примере шаблон поиска выглядит так: между иксами любая буква от 'a' до 'k':
let str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g,
'!');
В результате в переменную запишется следующее:
'! ! xmx x@x'
📌 #instr || Фронтендщик
1 108
Пример
В данном примере шаблон поиска выглядит так: между иксами любая буква от 'a' до 'k':
let str = 'xax xbx xmx x@x';
let res = str.replace(/x[a-k]x/g,
'!');
В результате в переменную запишется следующее:
'! ! xmx x@x'
📌 #instr || Фронтендщик
1 108
Пример
В данном примере шаблон поиска выглядит так: между иксами любая буква от 'a' до 'z':
let str = 'xax xbx xcx x@x';
let res = str.replace(/x[a-z]x/g,
'!');
В результате в переменную запишется следующее:
'! ! ! x@x'
📌 #instr || Фронтендщик
1 108
Можно не только перечислять символы, но создавать группы символов, записывая между двумя символами дефис. К примеру, вот так: [a-d] - мы получаем все символы от 'a' до 'd'.
Давайте посмотрим на примерах.
📌 #instr || Фронтендщик
1 108
Можно не только перечислять символы, но создавать группы символов, записывая между двумя символами дефис. К примеру, вот так: [a-d] - мы получаем все символы от 'a' до 'd'.
Давайте посмотрим на примерах.
📌 #instr || Фронтендщик
1 108
После квадратных скобок можно писать операторы повторения. К примеру, вот так: /x[abc]+x/ - мы говорим, что внутри иксов может быть любое количество символов 'a', 'b' и 'c' - в любых комбинациях.
📌 #instr || Фронтендщик
1 108
Квадратные скобки заменяют собой один символ, любой из перечисленных внутри. К примеру, вот так: /x[abc]x/ - мы говорим, что по краям должны стоять буквы икс, а внутри - один символ: или 'a', или 'b', или 'c'.
📌 #instr || Фронтендщик
1 108
Наборы символов в регулярных выражениях JavaScript
Группы символов \d и \w не очень гибкие. Даже такая простая задача, как найти все буквы, но не цифры - не может быть решена ими. Для таких задач следует использовать квадратные скобки, представляющие собой операцию 'или'.
📌 #instr || Фронтендщик
1 108
Пример
В данном примере шаблон поиска выглядит так: НЕ цифра и НЕ буква один или более раз. Под данное определение в нашем случае попадает '@@@' и все пробелы (они ведь тоже не цифры и не буквы). Обратите внимание на то, что в конце один '!' - в него преобразовалась строка ' @@@' - с пробелом впереди:
let str = '1 12 123 Abc @@@';
let res = str.replace(/\W+/g,
'!');
В результате в переменную запишется следующее:
'1!12!123!Abc!'
📌 #instr || Фронтендщик
1 108
Пример
В данном примере шаблон поиска выглядит так: цифра или буква один или более раз. Все подстроки, состоящие из цифр и букв, заменятся на '!':
let str = '1 12 123a Abc @@@';
let res = str.replace(/\w+/g,
'!');
В результате в переменную
запишется следующее:
'! ! ! ! @@@'
📌 #instr || Фронтендщик
1 108
Пример
В данном примере шаблон поиска выглядит так: НЕ пробельный символ один или более раз. Все подстроки, разделенные пробелами, заменятся на '!':
let str = '1 12 123 abc @@@';
let res = str.replace(/\S+/g,
'!');
В результате в переменную запишется следующее:
'! ! ! ! !'
📌 #instr || Фронтендщик
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
