String.prototype.match()
========================

Сводка
------

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

Синтаксис
---------
```

str.match(regexp)
```

### Параметры

`regexp`

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

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

`array`

Объект `Array`, содержащий результаты сопоставления, или `null`, если ничего не было сопоставлено.

Описание
--------

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

Если регулярное выражение содержит флаг `g`, метод вернёт массив, содержащий все сопоставления. Если сопоставлений не было, метод вернёт значение `null`.

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

* Если вам надо просто узнать, подпадает ли строка под регулярное выражение, используйте метод `search()`.
* Если вам нужно найти только первое сопоставление, вы можете использовать метод `RegExp.exec()`.
Примеры
-------

### Пример: использование метода `match()`

В следующем примере метод `match()` используется для поиска слова `'Глава'`, за которым следуют 1 или более цифр, за которыми следуют 0 или более раз группы из точки и цифры. Регулярное выражение включает флаг `i`, так что регистр букв игнорируется.


```js
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()`. Возвращаются все буквы от А до Д и от а до д, каждая в своём элементе массива.


```js
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 with JavaScript enabled. Enable JavaScript to view data.

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

* `RegExp.prototype.exec()`
* `RegExp.prototype.test()`