--- title: String.prototype.match() slug: Web/JavaScript/Reference/Global_Objects/String/match tags: - JavaScript - Method - Prototype - Reference - Regular Expressions - String translation_of: Web/JavaScript/Reference/Global_Objects/String/match ---
{{JSRef("Global_Objects", "String")}}

Сводка

Метод match() возвращает получившиеся совпадения при сопоставлении строки с регулярным выражением.

Синтаксис

str.match(regexp)

Параметры

regexp
Объект регулярного выражения. Если будет передан объект obj, не являющийся регулярным выражением, он будет неявно преобразован в объект {{jsxref("Global_Objects/RegExp", "RegExp")}} через вызов конструктора new RegExp(obj).

Возвращаемое значение

array
Объект {{jsxref("Global_Objects/Array", "Array")}}, содержащий результаты сопоставления, или {{jsxref("Global_Objects/null", "null")}}, если ничего не было сопоставлено.

Описание

Если регулярное выражение не содержит флаг g, возвращаемый результат будет тем же самым, что и при вызове метода {{jsxref("RegExp.prototype.exec()", "RegExp.exec()")}}. Возвращаемый объект {{jsxref("Global_Objects/Array", "массива", "", 1)}} имеет дополнительное свойство input, которое содержит оригинальную строку. Кроме того, он имеет свойство index, которое представляет индекс (нумерация с нуля) сопоставления в строке.

Если регулярное выражение содержит флаг g, метод вернёт {{jsxref("Global_Objects/Array", "массив", "", 1)}}, содержащий все сопоставления. Если сопоставлений не было, метод вернёт значение {{jsxref("Global_Objects/null", "null")}}.

Смотрите также: методы объекта RegExp

Примеры

Пример: использование метода 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' - это первое сопоставление и первое значение,
// сопоставленное с группой `(Глава \d+(\.\d)*)`.
// '.1' - это последнее значение, сопоставленное с группой `(\.\d)`.
// Свойство 'index' содержит значение (0) индекса совпадения
// относительно начала сопоставления
// Свойство 'input' содержит значение введенной строки.

Пример: использование флагов глобальности и игнорирования регистра с методом match()

Следующий пример демонстрирует использование флагов глобального поиска и игнорирования регистра символов вместе с методом match(). Возвращаются все буквы от А до Д и от а до д, каждая в своём элементе массива.

var str = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯабвгдеёжзийклмнопрстуфхцчшщьыъэюя';
var regexp = /[А-Д]/gi;
var matches_array = str.match(regexp);

console.log(matches_array);
// ['А', 'Б', 'В', 'Г', 'Д', 'а', 'б', 'в', 'г', 'д']

Спецификации

Спецификация Статус Комментарии
ECMAScript 3-е издание. Стандарт Изначальное определение. Реализована в JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.5.4.10', 'String.prototype.match')}} {{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-string.prototype.match', 'String.prototype.match')}} {{Spec2('ES6')}}

Совместимость с браузерами

{{CompatibilityTable}}
Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}

Примечания по Firefox

Смотрите также