--- title: Symbol.match slug: Web/JavaScript/Reference/Global_Objects/Symbol/match tags: - ECMAScript 2015 - JavaScript - Symbol - Властивість - Символ 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 (або хибне значення), він вказує, що об'єкт не призначений для використання в якості регулярного виразу.
{{js_property_attributes(0,0,0)}}
isRegExpНаступний код викине помилку {{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('ESDraft', '#sec-symbol.match', 'Symbol.match')}} |
{{Compat("javascript.builtins.Symbol.match")}}