String.prototype.match()
Сводка
Метод match()
возвращает получившиеся совпадения при сопоставлении строки с регулярным выражением.
Синтаксис
str.match(regexp)
Параметры
regexp
-
Объект регулярного выражения. Если будет передан объект
obj
, не являющийся регулярным выражением, он будет неявно преобразован в объектRegExp
через вызов конструктораnew RegExp(obj)
.
Возвращаемое значение
Описание
Если регулярное выражение не содержит флаг g
, возвращаемый результат будет тем же самым, что и при вызове метода RegExp.exec()
. Возвращаемый объект массива имеет дополнительное свойство input
, которое содержит оригинальную строку. Кроме того, он имеет свойство index
, которое представляет индекс (нумерация с нуля) сопоставления в строке.
Если регулярное выражение содержит флаг g
, метод вернёт массив, содержащий все сопоставления. Если сопоставлений не было, метод вернёт значение null
.
Смотрите также: методы объекта RegExp
- Если вам надо просто узнать, подпадает ли строка под регулярное выражение, используйте метод
search()
. - Если вам нужно найти только первое сопоставление, вы можете использовать метод
RegExp.exec()
.
Примеры
Пример: использование метода match()
В следующем примере метод match()
используется для поиска слова 'Глава'
, за которым следуют 1 или более цифр, за которыми следуют 0 или более раз группы из точки и цифры. Регулярное выражение включает флаг i
, так что регистр букв игнорируется.
var str = 'Смотри главу 3.4.5.1 для дополнительной информации';
var re = /смотри (главу \d+(\.\d)*)/i;
var found = str.match(re);
console.log(found);
// выведет [ 'Смотри главу 3.4.5.1',
// 'главу 3.4.5.1',
// '.1',
// index: 0,
// input: 'Смотри главу 3.4.5.1 для дополнительной информации' ]
// 'Смотри главу 3.4.5.1' - это полное сопоставление
// 'главу 3.4.5.1' - первое значение, сопоставленное с группой "(главу \d+(\.\d)*)".
// '.1' - это последнее значение, сопоставленное с группой "(\.\d)".
// Свойство 'index' содержит значение (0) индекса совпадения
// относительно начала сопоставления
// Свойство 'input' содержит значение введённой строки.
Пример: использование флагов глобальности и игнорирования регистра с методом match()
Следующий пример демонстрирует использование флагов глобального поиска и игнорирования регистра символов вместе с методом match()
. Возвращаются все буквы от А до Д и от а до д, каждая в своём элементе массива.
var str = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя';
var regexp = /[А-Д]/gi;
var matches_array = str.match(regexp);
console.log(matches_array);
// ['А', 'Б', 'В', 'Г', 'Д', 'а', 'б', 'в', 'г', 'д']
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-string.prototype.match |
Совместимость с браузерами
BCD tables only load in the browser