From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../global_objects/regexp/sticky/index.html | 139 +++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/sticky/index.html (limited to 'files/ru/web/javascript/reference/global_objects/regexp/sticky') diff --git a/files/ru/web/javascript/reference/global_objects/regexp/sticky/index.html b/files/ru/web/javascript/reference/global_objects/regexp/sticky/index.html new file mode 100644 index 0000000000..84801849db --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/sticky/index.html @@ -0,0 +1,139 @@ +--- +title: RegExp.prototype.sticky +slug: Web/JavaScript/Reference/Global_Objects/RegExp/sticky +tags: + - ECMAScript6 + - Experimental + - Expérimental(2) + - JavaScript + - Property + - Prototype + - Reference + - RegExp + - Référence(2) + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/sticky +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+ +

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

+ +
{{js_property_attributes(0, 0, 0)}}
+ +

Описание

+ +

Значение свойства sticky имеет тип {{jsxref("Global_Objects/Boolean", "Boolean")}} и содержит true, если при определении регулярного выражения использовался флаг "y", в противном случае оно содержит false. Флаг "y" указывает на то, что регулярное выражение сопоставляется с целевой строкой начиная с позиции, на которую указывает его свойство {{jsxref("RegExp.lastIndex", "lastIndex")}} (и не пытается сопоставиться по любому более старшему индексу). Такое поведение позволяет эффективно использовать символ "^" сопоставления-с-началом в любом месте строки путём смены значения свойства {{jsxref("RegExp.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+
+
+ +

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

+ + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
{{SpecName('ES6', '#sec-get-regexp.prototype.sticky', 'RegExp.prototype.sticky')}}{{Spec2('ES6')}}Изначальное определение.
+ +

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

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
ВозможностьChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка{{CompatNo}}{{CompatGeckoDesktop("1.9")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
ВозможностьAndroidChrome для AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка{{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("1.9")}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

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

+ + -- cgit v1.2.3-54-g00ecf