--- title: Symbol.match slug: Web/JavaScript/Reference/Global_Objects/Symbol/match tags: - ECMAScript6 - JavaScript - Свойство - Символы translation_of: Web/JavaScript/Reference/Global_Objects/Symbol/match ---
Symbol.match — известный символ, определяющий соответствие строки регулярному выражению. Этот метод вызывается функцией {{jsxref("String.prototype.match()")}}.
Данный метод также используется для того, чтобы определить, обладает ли объект поведением регулярного выражения. Например, методы {{jsxref("String.prototype.startsWith()")}}, {{jsxref("String.prototype.endsWith()")}} и {{jsxref("String.prototype.includes()")}} проверяют, является ли первый аргумент регулярным выражением, и бросают {{jsxref("TypeError")}}, если это так. Соответственно, если символ match установлен в false (или имеет {{Glossary("Falsy", "ложное")}} значение) — это говорит о том, что объект не предназначен для использования в качестве регулярного выражения.
sRegExpСледующий код выбросит {{jsxref("TypeError")}}:
"/bar/".startsWith(/bar/); // Бросает TypeError, так как /bar/ является // регулярным выражением и Symbol.match не изменён.
Несмотря на это, если вы зададите свойству Symbol.match значение false, проверка isRegExp (которая использует свойство match) покажет, что объект не является регулярным выражением — как следствие, методы startsWith и endsWith не станут бросать TypeError.
var re = /foo/; re[Symbol.match] = false; "/foo/".startsWith(re); // true "/baz/".endsWith(re); // false
| Спецификация | Статус | Комментарий |
|---|---|---|
| {{SpecName('ES6', '#sec-symbol.match', 'Symbol.match')}} | {{Spec2('ES6')}} | Изначальное определение. |
{{Compat}}