Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.
Это экспериментальная технология, часть предложения Harmony (ECMAScript 6).
Поскольку спецификация этой технологии ещё не стабилизировалась, проверьте таблицу совместимости её использования в различных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут быть изменены в будущих версиях браузеров в соответствии с изменениями в спецификации.
Symbol.match
— известный символ, определяющий соответствие строки регулярному выражению. Этот метод вызывается функцией String.prototype.match()
.
Атрибуты свойстваSymbol.match |
|
---|---|
Записываемое | нет |
Перечисляемое | нет |
Настраиваемое | нет |
Описание
Данный метод также используется для того, чтобы определить, обладает ли объект поведением регулярного выражения. Например, методы String.prototype.startsWith()
, String.prototype.endsWith()
и String.prototype.includes()
проверяют, является ли первый аргумент регулярным выражением, и бросают TypeError
, если это так. Соответственно, если символ match
установлен в false
(или имеет ложное значение) — это говорит о том, что объект не предназначен для использования в качестве регулярного выражения.
Примеры
Блокировка проверки 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
Спецификации
Спецификация | Статус | Комментарий |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Определение 'Symbol.match' в этой спецификации. |
Стандарт | Изначальное определение. |
Поддержка браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | Нет | 40 (40) | Нет | Нет | Нет |
Возможность | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | Нет | Нет | 40.0 (40) | Нет | Нет | Нет |