Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

RegExp.prototype.sticky

Это экспериментальная технология, часть предложения Harmony (ECMAScript 6).
Поскольку спецификация этой технологии ещё не стабилизировалась, проверьте таблицу совместимости её использования в различных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут быть изменены в будущих версиях браузеров в соответствии с изменениями в спецификации.

Сводка

Свойство sticky отражает тот факт, является ли поиск «липким» (то есть, начинается ли он с индекса, на который указывает свойство lastIndex регулярного выражения). Свойство sticky является свойством только для чтения и принадлежит экземпляру регулярного выражения.

Атрибуты свойстваRegExp.prototype.sticky
Записываемое нет
Перечисляемое нет
Настраиваемое нет

Описание

Значение свойства stickyимеет тип Boolean и содержит true, если при определении регулярного выражения использовался флаг "y"" flag was used; в противном случае оно содержит false. Флаг "y" указывает на то, что регулярное выражение сопоставляется с целевой строкой начиная с позиции, на которую указывает его свойство lastIndex (и не пытается сопоставиться по любому более старшему индексу). Такое поведение позволяет эффективно использовать символ "^" сопоставления-с-началом в любом месте строки путём смены значения свойства lastIndex.

Вы не можете напрямую изменить это свойство.

Примеры

Пример: использование регулярных выражений с флагом «липучести»

Этот пример демонстрирует, как можно использовать флаг «липучески» регулярных выражений для сопоставления с отдельными строками многострочного ввода.

var text = 'Первая строка\nВторая строка';
var regex = /(\S+) строка\n?/y;

var match = regex.exec(text);
console.log(match[1]);        // напечатает 'Первая'
console.log(regex.lastIndex); // напечатает '14'

var match2 = regex.exec(text);
console.log(match2[1]);       // напечатает 'Вторая'
console.log(regex.lastIndex); // напечатает '27'

var match3 = regex.exec(text);
console.log(match3 === null); // напечатает 'true'

Проверка совместимости

Во время выполнения можно проверить, поддерживается ли флаг «липучески», при помощи блока try { … } catch { … }. Для этого надо использовать либо выражение с eval(…), либо конструктор RegExp(строка-регулярки, строка-с-флагами) (поскольку нотация /регулярка/флаги обрабатывается во время компиляции, исключение будет выброшено до того, как выполнение достигнет блока catch). Например:

var supports_sticky;
try { RegExp('', 'y'); supports_sticky = true; }
catch(e) { supports_sticky = false; }
console.log(supports_sticky); // напечатает 'false' в Firefox 2 и 'true' в Firefox 3+

Спецификации

Спецификация Статус Комментарии
ECMAScript 6 (ECMA-262)
Определение 'RegExp.prototype.sticky' в этой спецификации.
Кандидат в рекомендации Изначальное определение.

Совместимость с браузерами

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка Нет 3.0 (1.9) Нет Нет Нет
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка Нет Нет 1.0 (1.9) Нет Нет Нет

Смотрите также

Метки документа и участники

 Внесли вклад в эту страницу: Mingun
 Обновлялась последний раз: Mingun,