В этом руководстве вы узнаете о методе JavaScript String match() для сопоставления строки с регулярным выражением.
Чтобы понять, как работает метод match() и как его эффективно использовать, вы должны иметь базовые знания о регулярных выражениях.
Метод String match() сопоставляет строку с регулярным выражением:
str.match(regexp);
Если regexp не является регулярным выражением, функция match() преобразует его в регулярное выражение с помощью конструктора RegExp(). Функция возвращает массив в зависимости от того, использует ли регулярное выражение флаг глобального флага( g ) или нет:
- Если
regexpиспользует флагg, то методmatch()возвращает массив, содержащий все совпадения. Результат не содержит групп захвата. - Если
regexpне использует флагg, методmatch()вернет первое совпадение и связанные с ним группы захвата. Результатом сопоставления является тот же результат, что иRegExp.exec()с дополнительными свойствами. Подробности смотрите в примере ниже.
Функция возвращает null, если не находит совпадений.
Примеры match() в JavaScript
Давайте рассмотрим несколько примеров использования метода match().
1) Использование с выражением, которое имеет глобальный флаг
В следующем примере показано, как использовать метод match() с глобальным флагом( g ). Он возвращает массив совпадений:
let str = "Price: $5–$10"; let result = str.match(/\$\d+/g); console.log(result);
Выход:
["$5", "$10"]
В этом примере match() ищет любое число, следующее за знаком $.
2) Использование с выражением без глобального флага
В данном примере показано, как использовать метод match() с регулярным выражением, не имеющим глобального флага. Он возвращает массив первого совпадения с дополнительными свойствами.
let str = "Price: $5–$10"; let result = str.match(/\$\d+/); console.log(result);
Выход:

Дополнительными свойствами являются:
index: это индекс, по которому было найдено совпадение.input: копия строки поиска.groups: это объект именованных групп захвата, чьи ключи и значения являются именами и группами захвата соответственно. В этом примере он неundefined, потому что мы определили любые именованные группы захвата.
3) Использование метода с именованной capturing group
Ниже показано, как использовать метод match() с именованной capturing group. Он захватывает "yellow" в группу с именем "color" :
let str = 'I like yellow color palette!'; let re = /(?<color>yellow) color/; let result = str.match(re); console.log(result);
Выход:

В этом руководстве вы узнали, как использовать метод JavaScript String match() для сопоставления строки с регулярным выражением.
