Метод match() в JavaScript

В этом руководстве вы узнаете о методе 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);

Выход:

regex match() с выражением, которое не имеет глобального флага

Дополнительными свойствами являются:

  • 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 именованной группе захвата

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

Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript