В этом руководстве вы узнаете о методе 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()
для сопоставления строки с регулярным выражением.