--- 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 ---
Метод match()
возвращает получившиеся совпадения при сопоставлении строки с регулярным выражением.
str.match(regexp)
regexp
obj
, не являющийся регулярным выражением, он будет неявно преобразован в объект {{jsxref("Global_Objects/RegExp", "RegExp")}} через вызов конструктора new RegExp(obj)
.array
Если регулярное выражение не содержит флаг 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')}} |
Возможность | 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}} |
match()
с глобальным регулярным выражением, свойство {{jsxref("RegExp.lastIndex")}} (если оно определено) будет сбрасываться в 0
({{bug(501739)}}).