Symbol.match
Добревідомий символ Symbol.match
визначає збіг регулярного виразу з рядком. Ця функція викликається методом String.prototype.match()
.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Опис
Ця функція також використовується, щоб з'ясувати, чи об'єкти поводяться як регулярні вирази. Наприклад, методи String.prototype.startsWith()
, String.prototype.endsWith()
та String.prototype.includes()
перевіряють, чи є перший аргумент регулярним виразом, та викидають TypeError
, якщо це так. Отже, якщо символ match
має значення false
(або хибне значення), він вказує, що об'єкт не призначений для використання в якості регулярного виразу.
Атрибути поля Symbol.match |
|
---|---|
Доступний для запису | ні |
Доступний для переліку | ні |
Доступний для налаштування | ні |
Приклади
Відключення перевірки isRegExp
Наступний код викине помилку 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
Специфікації
Сумісність з веб-переглядачами
BCD tables only load in the browser