Совпадение последовательностей пробелов
- Используйте метапоследовательность
\s
для соответствия любому символу пробела, включая пробелы, табуляции, новые строки и т. д. - Используйте квантификатор
+
для сопоставления одного или нескольких вхождений предыдущего символа. - Добавьте глобальный флаг (
g
), чтобы сопоставить все вхождения шаблона в строке.
const регулярное выражение = /\s+/g;
Совпадение разрывов строк
- В зависимости от среды разрывы строк могут быть представлены по-разному.
- Используйте символ
\r
для соответствия возврату каретки, символ\n
для соответствия символу новой строки и последовательность\r\n
- Добавьте глобальные (
g
) и многострочные (m
) флаги для соответствия всем вхождениям шаблона в строке.
const регулярное выражение = /\r|\n|\r\n/gm; 9((?!(abc|bcd)).)*$/; // Где 'abc' и 'bcd' - шаблон, который вы хотите исключить
Текст внутри скобок
- Используйте символы
\(
и\)
для соответствия открывающей и закрывающей скобкам соответственно. - Используйте группу захвата между ними и исключите символ закрывающей скобки.
- Используйте квантификатор
+
для соответствия одному или нескольким символам, если необходимо. - Добавить глобальный флаг (
г 9(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\ д{4}$/;
Разбить строку на куски размером n
- Используйте квантификатор
. {1,n}
для соответствия любому символу между1
иn
раз. - Добавьте глобальный флаг (
g
), чтобы сопоставить все вхождения шаблона в строке.
const регулярное выражение = /.{1,2}/g; // Где «2» — количество символов в чанке
По сценарию Ангелоса Чалариса
Меня зовут Ангелос Чаларис, инженер-программист JavaScript из Афин, Греция. Лучшие фрагменты из моих приключений в программировании публикуются здесь, чтобы помочь другим научиться программировать.
Если вы хотите оставаться на связи, подписывайтесь на меня Гитхаб.
Шпаргалки
Коллекция шпаргалок, которые можно добавить в закладки и возвращаться к ним всякий раз, когда вам нужно что-то найти.
Коллекция · 15 фрагментов
Памятка по регулярным выражениям
Регулярные выражения — очень полезный инструмент. Сохраните эту шпаргалку на случай, если вам понадобится изучить их синтаксис и ускорить разработку.
JavaScript, String · 12 июня 2021 г.
6 функций регулярных выражений JavaScript, которые вы можете использовать уже сегодня
Узнайте, как эффективно использовать регулярные выражения JavaScript с помощью этих 6 мощных функций.
JavaScript, String · 12 июня 2021 г.
Escape RegExp
Экранирует строку для использования в регулярном выражении.
JavaScript, String · 15 сентября 2020 г.
‼️ Разница между String.match() и String.matchAll()
String.match()
String.match()
это метод в JavaScript, который возвращает массив результатов, соответствующих строке регулярному выражению.const регулярное выражение = /t(e)(st(\d?))/g константная строка = 'test1test2' константные результаты = string.match (регулярное выражение) console.log(результаты) // → ['тест1', 'тест2']
Возвращаемые результаты зависят от
глобальный(г)
флаг. Если используется флагg
, мы получим все результаты, но без захвата групп. Если мы удалим флагg
из регулярного выражения, мы получим все группы захвата, но мы получим только первое совпадение. Это выглядит так:const regex = /t(e)(st(\d?))/ константная строка = 'test1test2' константные результаты = string.match (регулярное выражение) console.log(результаты) // → ['test1', 'e', 'st1', '2', index: 0, input: 'test1test2', groups: undefined]
Эта строка содержит второе возможное совпадение, начинающееся с
'test2'
, но у нас его нет. Если совпадений нет, методmatch()
возвращает null. Теперь вопрос: как получить все группы захвата для каждого совпадения? Вот гдеString.matchAll()
вступает в игру.String.prototype.matchAll()
String.matchAll()
возвращает итератор, который возвращает все совпавшие группы с регулярным выражением, включая захваченные группы. Одна из основных причин использованияmatchAll()
болееmatch()
— это возможность доступа к группам захвата.const регулярное выражение = /t(e)(st(\d?))/g константная строка = 'test1test2' константные совпадения = строка.matchAll (регулярное выражение) Array.from(совпадения, console.log) // -> ['test1', 'e', 'st1', '1', index: 0, input: 'test1test2', groups: undefined] // ->
В отличие от
match()
, которая возвращает массив при глобальном поиске,matchAll()
возвращает итератор, который создает массив для каждого совпадения, который также работает с цикламиfor…of
. Если совпадений нет,метод matchAll()
возвращает пустой итерируемый объект.Итератор создает массив для каждого совпадения, включая группы захвата с несколькими дополнительными свойствами, такими как
index
,input
иgroups
. - Используйте квантификатор