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/@@search/index.html | 116 ++++ .../global_objects/regexp/@@split/index.html | 113 ++++ .../global_objects/regexp/exec/index.html | 228 +++++++ .../global_objects/regexp/flags/index.html | 120 ++++ .../global_objects/regexp/global/index.html | 115 ++++ .../global_objects/regexp/ignorecase/index.html | 115 ++++ .../reference/global_objects/regexp/index.html | 665 +++++++++++++++++++++ .../global_objects/regexp/input/index.html | 55 ++ .../global_objects/regexp/lastindex/index.html | 130 ++++ .../global_objects/regexp/lastmatch/index.html | 54 ++ .../global_objects/regexp/multiline/index.html | 115 ++++ .../reference/global_objects/regexp/n/index.html | 64 ++ .../global_objects/regexp/prototype/index.html | 140 +++++ .../global_objects/regexp/source/index.html | 121 ++++ .../global_objects/regexp/sticky/index.html | 139 +++++ .../global_objects/regexp/test/index.html | 143 +++++ .../global_objects/regexp/tosource/index.html | 106 ++++ .../global_objects/regexp/tostring/index.html | 116 ++++ .../global_objects/regexp/unicode/index.html | 70 +++ 19 files changed, 2725 insertions(+) create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/@@search/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/@@split/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/exec/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/flags/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/global/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/ignorecase/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/input/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/lastindex/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/lastmatch/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/multiline/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/n/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/prototype/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/source/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/sticky/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/test/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/tosource/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/tostring/index.html create mode 100644 files/ru/web/javascript/reference/global_objects/regexp/unicode/index.html (limited to 'files/ru/web/javascript/reference/global_objects/regexp') diff --git a/files/ru/web/javascript/reference/global_objects/regexp/@@search/index.html b/files/ru/web/javascript/reference/global_objects/regexp/@@search/index.html new file mode 100644 index 0000000000..ee37017a2a --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/@@search/index.html @@ -0,0 +1,116 @@ +--- +title: 'RegExp.prototype[@@search]()' +slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@search +tags: + - JavaScript + - Prototype + - Reference + - RegExp + - метод + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@search +--- +
{{JSRef}}
+ +

Метод [@@search]() выполняет поиск совпадения между регулярным выражением this и строкой.

+ +

Синтаксис

+ +
regexp[Symbol.search](str)
+ +

Параметры

+ +
+
str
+
{{jsxref("String")}}, являющийся объектом поиска.
+
+ +

Возвращаемое значение

+ +
+
integer
+
В случае успеха, [@@search]() вернёт индекс первого совпадения регулярного выражения внутри строки. В противном случае, он вернёт -1.
+
+ +

Описание

+ +

Этот метод вызывается внутрнее в {{jsxref("String.prototype.search()")}}. Например, два следующих примера вернут один и тот же результат.

+ +
'abc'.search(/a/);
+
+/a/[Symbol.search]('abc');
+ +

Этот метод существует для настройки поведения поиска в подклассах RegExp.

+ +

Примеры

+ +

Прямой вызов

+ +

Этот метод можно использовать почти так же, как {{jsxref("String.prototype.search()")}}, за исключением другого this и другого порядка аргументов.

+ +
var re = /-/g;
+var str = '2016-01-02';
+var result = re[Symbol.search](str);
+console.log(result);  // 4
+
+ +

Используя @@search в подклассах

+ +

Подкласс {{jsxref("RegExp")}} может быть перезаписан с помощью метода [@@search]() для изменения поведения.

+ +
class MyRegExp extends RegExp {
+  constructor(str) {
+    super(str)
+    this.pattern = str;
+  }
+  [Symbol.search](str) {
+    return str.indexOf(this.pattern);
+  }
+}
+
+var re = new MyRegExp('a+b');
+var str = 'ab a+b';
+var result = str.search(re); // String.prototype.search calls re[@@search].
+console.log(result); // 3
+
+ +

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

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

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

+ +
+ + +

{{Compat("javascript.builtins.RegExp.@@search")}}

+
+ +

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

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/@@split/index.html b/files/ru/web/javascript/reference/global_objects/regexp/@@split/index.html new file mode 100644 index 0000000000..8a0e07c804 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/@@split/index.html @@ -0,0 +1,113 @@ +--- +title: 'RegExp.prototype[@@split]()' +slug: Web/JavaScript/Reference/Global_Objects/RegExp/@@split +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/@@split +--- +
{{JSRef}}
+ +

[@@split]() метод делит объект {{jsxref("String")}}  в массив сторок, путём разбиения строки на подстроки.

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-@@split.html")}}
+ + + +

Синтаксис

+ +
regexp[Symbol.split](str[, limit])
+ +

Параметры

+ +
+
str
+
Цель разбиения.
+
limit
+
+

Необязательное. Целое число ограничивающее кол-во рабиений. [@@split]() метод разбивает все совпадения this RegExp шаблона, до тех пор пока не достигнет числа limit или строка будет короче this шаблона.

+
+
+ +

Возвращаемое значение

+ +

{{jsxref("Array")}} содержит подстроки как элементы.

+ +

Описание

+ +

Этот метод вызывает {{jsxref("String.prototype.split()")}}, если аргумент separator объект {{jsxref("RegExp")}}. Для примера, два данных выражения возвращают одинаковый результат.

+ +
'a-b-c'.split(/-/);
+
+/-/[Symbol.split]('a-b-c');
+ +

Этот метод существует для кастомизации поведения (разбиения) подкласса RegExp.

+ +

Если аргумент str не объект типа {{jsxref("RegExp")}}, метод {{jsxref("String.prototype.split()")}} не вызывается, так же не создается объект типа {{jsxref("RegExp")}}.

+ +

Примеры

+ +

Прямой вызов

+ +

Этот метод может быть использован, так же как {{jsxref("String.prototype.split()")}}, кроме случаев когда this отличаются и аргументы идут в разном порядке.

+ +
var re = /-/g;
+var str = '2016-01-02';
+var result = re[Symbol.split](str);
+console.log(result);  // ["2016", "01", "02"]
+
+ +

Использование @@split в подклассах

+ +

Подклассы {{jsxref("RegExp")}} могут переопределить [@@split]() для изменения дефольтного поведения.

+ +
class MyRegExp extends RegExp {
+  [Symbol.split](str, limit) {
+    var result = RegExp.prototype[Symbol.split].call(this, str, limit);
+    return result.map(x => "(" + x + ")");
+  }
+}
+
+var re = new MyRegExp('-');
+var str = '2016-01-02';
+var result = str.split(re); // String.prototype.split calls re[@@split].
+console.log(result); // ["(2016)", "(01)", "(02)"]
+
+ +

Specifications

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('ES6', '#sec-regexp.prototype-@@split', 'RegExp.prototype[@@split]')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-regexp.prototype-@@split', 'RegExp.prototype[@@split]')}}{{Spec2('ESDraft')}} 
+ +

Browser compatibility

+ +
+ + +

{{Compat("javascript.builtins.RegExp.@@split")}}

+
+ +

See also

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/exec/index.html b/files/ru/web/javascript/reference/global_objects/regexp/exec/index.html new file mode 100644 index 0000000000..fdd7c92041 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/exec/index.html @@ -0,0 +1,228 @@ +--- +title: RegExp.prototype.exec() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/exec +tags: + - JavaScript + - Method + - Prototype + - Reference + - RegExp + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/exec +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+ +

Метод exec() выполняет поиск сопоставления регулярного выражения в указанной строке. Возвращает массив с результатами или {{jsxref("null")}}.

+ +

Если целью выполнения является просто определить, проходит оно или нет, используйте метод {{jsxref("RegExp.prototype.test()")}}, либо метод строки {{jsxref("String.prototype.search()")}}.

+ +

Синтаксис

+ +
regexObj.exec(str)
+ +

Параметры

+ +
+
str
+
Строка, с которой производится сопоставление регулярного выражения.
+
+ +

Возвращаемое значение

+ +

Если сопоставление успешно выполнилось, метод exec() возвращает массив и обновляет свойства объекта регулярного выражения. Возвращаемый массив в первом элементе содержит сопоставленный текст, а в последующих элементах — текст, захваченный при сопоставлении круглыми скобками.

+ +

Если сопоставление не удалось, метод exec() возвращает {{jsxref("null")}}.

+ +

Описание

+ +

Рассмотрим следующий пример:

+ +
// Сопоставляется с фразой «кайф, сплющь», за которой следует слово «вши»,
+// игнорируя любые символы между ними. Запоминает слова «сплющь» и «вши».
+// Игнорирует регистр символов.
+var re = /кайф,\s(сплющь).+?(вши)/ig;
+var result = re.exec('Эх, чужд кайф, сплющь объём вши, грызя цент.');
+
+ +

Таблица ниже показывает результаты выполнения данного примера:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ОбъектСвойство/ИндексОписаниеПример
result[0]Все сопоставившиеся символы в строке.кайф, сплющь объём вши
[1], ...[n]Сопоставившиеся подстроки в круглых скобках, если они присутствуют. Количество возможных подстрок ничем не ограничено.[1] = сплющь
+ [2] = вши
indexИндекс сопоставления в строке, начинается с нуля.9
inputОригинальная строка.Эх, чужд кайф, сплющь объём вши, грызя цент.
relastIndexИндекс, с которого начнётся следующая попытка сопоставления. Если отсутствует флаг "g", остаётся равным нулю.31
ignoreCaseУказывает, что в регулярном выражении используется флаг игнорирования регистра "i".true
globalУказывает, что в регулярном выражении используется флаг глобального сопоставления "g".true
multilineУказывает, что в регулярном выражении используется флаг сопоставления по нескольким строкам "m".false
sourceТекст шаблона регулярного выражения.кайф,\s(сплющь).+?(вши)
+ +

Примеры

+ +

Пример: поиск последовательных сопоставлений

+ +

Если ваше регулярное выражение использует флаг "g", вы можете использовать метод exec() несколько раз для нахождения последовательных сопоставлений в одной и той же строке. Если вы сделаете это, поиск начнётся по подстроке строки str, начало которой определяется свойством {{jsxref("RegExp.lastIndex", "lastIndex")}} регулярного выражения (метод {{jsxref("RegExp.prototype.test()", "test()")}} также увеличивает свойство {{jsxref("RegExp.lastIndex", "lastIndex")}}). Например, предположим, что у вас есть следующий скрипт:

+ +
var myRe = /аб*/g;
+var str = 'аббвгдеабж';
+var myArray;
+while ((myArray = myRe.exec(str)) !== null) {
+  var msg = 'Найдено ' + myArray[0] + '. ';
+  msg += 'Следующее сопоставление начнётся с позиции ' + myRe.lastIndex;
+  console.log(msg);
+}
+
+ +

Этот скрипт выведет следующий текст:

+ +
Найдено абб. Следующее сопоставление начнётся с позиции 3
+Найдено аб. Следующее сопоставление начнётся с позиции 9
+
+ +

Примечание: не помещайте литерал регулярного выражения (или конструктор {{jsxref("RegExp")}}) внутрь условия while; это приведёт к бесконечному циклу, поскольку свойство {{jsxref("RegExp.lastIndex", "lastIndex")}} будет сбрасываться в ноль на каждой итерации цикла. Также убедитесь, что установлен флаг глобального сопоставления, в противном случае цикл будет бесконечным.

+ +

Пример: использование метода exec() вместе с литералами регулярного выражения

+ +

Вы можете использовать метод exec() без создания объекта {{jsxref("RegExp")}}:

+ +
var matches = /(привет \S+)/.exec('Это привет миру!');
+console.log(matches[1]);
+
+ +

Скрипт выведет в журнал строку «привет миру!».

+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
ECMAScript 3-е издание.СтандартИзначальное определение. Реализована в JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.10.6.21', 'RegExp.exec')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-regexp.prototype.exec', 'RegExp.exec')}}{{Spec2('ES6')}} 
+ +

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

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

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

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/flags/index.html b/files/ru/web/javascript/reference/global_objects/regexp/flags/index.html new file mode 100644 index 0000000000..c69b279c3e --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/flags/index.html @@ -0,0 +1,120 @@ +--- +title: RegExp.prototype.flags +slug: Web/JavaScript/Reference/Global_Objects/RegExp/flags +tags: + - ECMAScript6 + - Experimental + - Expérimental(2) + - JavaScript + - Property + - Prototype + - Reference + - RegExp + - Référence(2) + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/flags +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+ +

Свойство flags возвращает строку, состоящую из флагов текущего регулярного выражения.

+ +

Описание

+ +

Флаги в свойстве flags упорядочены по алфавиту (слева направо, то есть "gimuy").

+ +

Примеры

+ +

Пример: использование свойства flags

+ +
/foo/ig.flags;   // "gi"
+/bar/myu.flags;  // "muy"
+
+ +

Полифилл

+ +
if (RegExp.prototype.flags === undefined) {
+  Object.defineProperty(RegExp.prototype, 'flags', {
+    configurable: true,
+    get: function() {
+      return this.toString().match(/[gimuy]*$/)[0];
+    }
+  });
+}
+
+ +

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

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

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

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

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

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/global/index.html b/files/ru/web/javascript/reference/global_objects/regexp/global/index.html new file mode 100644 index 0000000000..ea31bfb150 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/global/index.html @@ -0,0 +1,115 @@ +--- +title: RegExp.prototype.global +slug: Web/JavaScript/Reference/Global_Objects/RegExp/global +tags: + - JavaScript + - Property + - Prototype + - Reference + - RegExp + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/global +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+

Свойство global указывает, использовался ли в определении регулярного выражения флаг "g". Свойство global является свойством только для чтения и принадлежит экземпляру регулярного выражения.

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

Описание

+

Значение свойства global имеет тип {{jsxref("Global_Objects/Boolean", "Boolean")}} и содержит true, если при определении регулярного выражения использовался флаг "g"; в противном случае оно содержит false. Флаг "g" указывает на то, что регулярное выражение должно проверять все возможные сопоставления в строке.

+

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

+ +

Примеры

+ +

Пример: использование свойства global

+
var regex = new RegExp('foo', 'g');
+
+console.log(regex.global); // true
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
ECMAScript 3-е издание.СтандартИзначальное определение. Реализована в JavaScript 1.2.
+ JavaScript 1.5: свойство global является свойством экземпляра {{jsxref("Global_Objects/RegExp", "RegExp")}}, а не самого объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}.
{{SpecName('ES5.1', '#sec-15.10.7.2', 'RegExp.prototype.global')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-get-regexp.prototype.global', 'RegExp.prototype.global')}}{{Spec2('ES6')}}Свойство global теперь является свойством доступа в прототипе объекта, а не собственным свойством данных экземпляра.
+ +

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

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

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

+ diff --git a/files/ru/web/javascript/reference/global_objects/regexp/ignorecase/index.html b/files/ru/web/javascript/reference/global_objects/regexp/ignorecase/index.html new file mode 100644 index 0000000000..f8888887b5 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/ignorecase/index.html @@ -0,0 +1,115 @@ +--- +title: RegExp.prototype.ignoreCase +slug: Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase +tags: + - JavaScript + - Property + - Prototype + - Reference + - RegExp + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+

Свойство ignoreCase указывает, использовался ли в определении регулярного выражения флаг "i". Свойство ignoreCase является свойством только для чтения и принадлежит экземпляру регулярного выражения.

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

Описание

+

Значение свойства ignoreCase имеет тип {{jsxref("Global_Objects/Boolean", "Boolean")}} и содержит true, если при определении регулярного выражения использовался флаг "i"; в противном случае оно содержит false. Флаг "i" указывает на то, что регистр символов в строке, с которой сопоставляется регулярное выражение, должен игнорироваться.

+

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

+ +

Примеры

+ +

Пример: использование свойства ignoreCase

+
var regex = new RegExp('foo', 'i');
+
+console.log(regex.ignoreCase); // true
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
ECMAScript 3-е издание.СтандартИзначальное определение. Реализована в JavaScript 1.2.
+ JavaScript 1.5: свойство ignoreCase является свойством экземпляра {{jsxref("Global_Objects/RegExp", "RegExp")}}, а не самого объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}.
{{SpecName('ES5.1', '#sec-15.10.7.3', 'RegExp.prototype.ignoreCase')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-get-regexp.prototype.ignorecase', 'RegExp.prototype.ignoreCase')}}{{Spec2('ES6')}}Свойство ignoreCase теперь является свойством доступа в прототипе объекта, а не собственным свойством данных экземпляра.
+ +

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

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

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

+ diff --git a/files/ru/web/javascript/reference/global_objects/regexp/index.html b/files/ru/web/javascript/reference/global_objects/regexp/index.html new file mode 100644 index 0000000000..9a864bee32 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/index.html @@ -0,0 +1,665 @@ +--- +title: RegExp +slug: Web/JavaScript/Reference/Global_Objects/RegExp +tags: + - Constructor + - JavaScript + - Reference + - RegExp + - Référence(2) + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+ +

Конструктор RegExp создаёт объект регулярного выражения для сопоставления текста с шаблоном.

+ +

Введение в то, что представляют собой регулярные выражения, читайте в главе «Регулярные выражения» в руководстве по JavaScript.

+ +
{{EmbedInteractiveExample("pages/js/regexp-constructor.html")}}
+ + + +

Синтаксис

+ +

Возможны как литеральная запись, так и запись через конструктор:

+ +
/pattern/flags
+new RegExp(pattern, flags)
+
+ +

Параметры

+ +
+
pattern
+
Текст регулярного выражения.
+
flags
+
+

Если определён, может принимать любую комбинацию нижеследующих значений:

+ +
+
g
+
глобальное сопоставление
+
i
+
игнорирование регистра при сопоставлении
+
m
+
сопоставление по нескольким строкам; символы начала и конца (^ и $) начинают работать по нескольким строкам (то есть, происходит сопоставление с началом или концом каждой строки (строки разделяются символами \n или \r), а не только с началом или концом всей вводимой строки)
+
y {{experimental_inline}}
+
«липкий» поиск; сопоставление в целевой строке начинается с индекса, на который указывает свойство lastIndex этого регулярного выражения (и не пытается сопоставиться с любого более позднего индекса).
+
+
+
+ +

Описание

+ +

Существует два способа создания объекта RegExp: литеральная запись и использование конструктора. При записи строк параметры в литеральной записи не используют символы кавычек, в то время как параметры функции-конструктора используют кавычки. Так что следующие выражения создают одинаковые регулярные выражения:

+ +
/ab+c/i;
+new RegExp('ab+c', 'i');
+
+ +

Литеральная запись обеспечивает компиляцию регулярного выражения при вычислении выражения. Используйте литеральную запись если регулярное выражение будет неизменным. Например, если вы используете литеральную запись для конструирования регулярного выражения, используемого в цикле, регулярное выражение не будет перекомпилироваться на каждой итерации.

+ +

Конструктор объекта регулярного выражения, например, new RegExp('ab+c'), обеспечивает компиляцию регулярного выражения во время выполнения. Используйте функцию-конструктор, если вы знаете, что шаблон регулярного выражения будет меняться или если вы не знаете шаблон и получаете его из внешних источников, например, из пользовательского ввода.

+ +

При использовании функции-конструктора необходимо использовать обычные правила экранирования в строках (предварять специальные символы символом обратного слеша «\»). Например, следующие выражения эквивалентны:

+ +
var re = /\w+/;
+var re = new RegExp('\\w+');
+
+ +

Значение специальных символов в регулярных выражениях

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Символьные классы
СимволЗначение
. +

(Точка, десятичная запятая) сопоставляется с любым символом за исключением символов новой строки: \n, \r, \u2028 или \u2029.

+ +

Обратите внимание, что флаг многострочности m не изменяет поведение точки. Так что для сопоставления с шаблона с несколькими строками используйте набор символов [^] (конечно, если только вам не нужно поддерживать старые версии IE), он сопоставляется с любым символом, включая символы новой строки.

+ +

Например, шаблон /.н/ сопоставляется с подстрокой «ан», но не подстрокой «ну», во фразе «ну что, потанцуем».

+
\d +

Сопоставляется с символом цифры в базовом латинском алфавите. Эквивалентен набору символов [0-9].

+ +

Например, шаблоны /\d/ и /[0-9]/ сопоставляются с подстрокой «2» в строке «B2 — это номер люкс».

+
\D +

Сопоставляется с любым символом, который не является цифрой в базовом латинском алфавите. Эквивалентен набору символов [^0-9].

+ +

Например, шаблоны /\D/ и /[^0-9]/ сопоставляются с подстрокой «B» в строке «B2 — это номер люкс».

+
\w +

Сопоставляется с любым алфавитно-цифровым символом из базового латинского алфавита, включая символ подчёркивания. Эквивалентен набору символов [A-Za-z0-9_].

+ +

Например, шаблон /\w/ сопоставляется с подстрокой «a» в строке «apple», с подстрокой «5» в строке «$5.28» и с подстрокой «3» в строке «3D».

+
\W +

Сопоставляется с любым символом из базового латинского алфавита, не являющимся символом, из которых состоят слова. Эквивалентен набору символов [^A-Za-z0-9_].

+ +

Например, шаблоны /\W/ и /[^A-Za-z0-9_]/ сопоставляются с подстрокой «%» в строке «50%».

+
\s +

Сопоставляется с одиночным пробельным символом, который включает в себя пробел, табуляцию, подачу страницы, перевод строки и другие пробельные символы Юникода. Эквивалентен набору символов [ \f\n\r\t\v​\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​​\u202f\u205f​\u3000].

+ +

Например, шаблон /\s\w*/ сопоставляется с подстрокой « bar» в строке «foo bar».

+
\S +

Сопоставляется с одиночным символом, не являющимся пробельным. Эквивалентен набору символов [^ \f\n\r\t\v​\u00a0\u1680​\u180e\u2000​\u2001\u2002​\u2003\u2004​\u2005\u2006​\u2007\u2008​\u2009\u200a​\u2028\u2029​\u202f\u205f​\u3000].

+ +

Например, шаблон /\S\w*/ сопоставляется с подстрокой «foo» в строке «foo bar».

+
\tСопоставляется с символом табуляции.
\rСопоставляется с символом возврата каретки.
\nСопоставляется с символом перевода строки.
\vСопоставляется с символом вертикальной табуляции.
\fСопоставляется с символом подачи страницы.
[\b]Сопоставляется с символом забоя (не перепутайте его с символьным классом \b).
\0Сопоставляется с нулевым символом. Не ставьте за ним другую цифру.
\cX +

Где X является буквой от «A» до «Z». Сопоставляется с управляющим символом в строке.

+ +

Например, шаблон /\cM/ сопоставляется с символом control-M в строке.

+
\xhhСопоставляется с символом с кодом hh (две шестнадцатеричные цифры).
\uhhhhСопоставляется с символом со значением Юникода hhhh (четыре шестнадцатеричные цифры).
\ +

Для символов, которые обычно трактуются буквально, указывает, что следующий символ является специальным и не должен интерпретироваться буквально.

+ +

Например, шаблон /b/ сопоставляется с символом «b». Поместив перед ним символ обратного слеша, то есть превратив шаблон в /\b/, символ приобретёт специальное значение, обозначающее сопоставление с границей слова.

+ +

или

+ +

Для символов, которые обычно трактуются специальным образом, указывает, что следующий символ не является специальным и должен интерпретироваться буквально.

+ +

Например, звёздочка «*» является специальным символом, обозначающим ноль или более вхождений предшествующего символа при сопоставлении; поэтому шаблон /a*/ означает сопоставление с нулём или более символов «a». Для буквального сопоставления со звёздочкой * предварите её символом обратного слеша; например, шаблон /a\*/ сопоставляется со строкой «a*».

+
Наборы символов
СимволЗначение
[xyz] +

Набор символов. Сопоставляется с любым из заключённых в квадратные скобки символов. С помощью дефиса вы можете определить диапазон символов.

+ +

Например, шаблон [абвгд] означает тоже самое, что и шаблон [а-д]. Они сопоставляются с символом «г» в слове «грудинка» и символом «б» в слове «отбивная».

+
[^xyz] +

Отрицательный или дополнительный набор символов. То есть он сопоставляется со всеми символами, что не заключены в квадратные скобки. С помощью дефиса вы можете определить диапазон символов.

+ +

Например, шаблон [^абвгд] означает тоже самое, что и шаблон [^а-д]. Они сопоставляются с символом «е» в слове «бекон» и символом «о» в слове «отбивная».

+
Границы
СимволЗначение
^ +

Сопоставляется c началом ввода. Если установлен флаг многострочности, также сопоставляется с позицией сразу за символом переноса строки.

+ +

Например, шаблон /^Б/ не сопоставляется с буквой «Б» в строке «буква Б», но сопоставляеся с первой буквой «Б» в строке «Буква Б».

+
$ +

Сопоставляется c концом ввода. Если установлен флаг многострочности, также сопоставляется с позицией сразу перед символом переноса строки.

+ +

Например, шаблон /т$/ не сопоставляется с буквой «т» в слове «кормить», но сопоставляеся с ней в слове «кормит».

+
\b +

Сопоставляется с границей слова нулевой ширины, например с позицией между буквой и пробелом (не путайте его с набором символов [\b]).

+ +

Например, шаблон /\bпол/ сопоставляется с подстрокой «пол» в строке «в полдень»; шаблон /но\b/ сопоставляется с подстрокой «но» в строке «возможно завтра».

+
\B +

Сопоставляется с границей не-слов нулевой ширины, например с позицией между двумя буквами или двумя пробелами.

+ +

Например, шаблон /\Bдень/ сопоставляется с подстрокой «день» в строке «в полдень»; шаблон /за\B/ сопоставляется с подстрокой «за» в строке «возможно завтра».

+
Группировка и обратные ссылки
СимволЗначение
(x) +

Сопоставляется с x и запоминает сопоставление. Называется «захватывающие скобки».

+ +

Например, шаблон /(foo)/ сопоставлется с подстрокой «foo» и запоминает её в строке «foo bar». Сопоставленую подстроку можно достать из элементов [1], ..., [n] результирующего массива или из предопределённых свойств $1, ..., $9 объекта RegExp.

+ +

Захват групп ведёт к проседанию производительности. Если вам не нужно повторно ссылаться на захваченную подстроку, лучше использовать скобки без захвата (смотрите ниже).

+
\n +

Где n является целым положительным числом. Обратная ссылка на последнюю сопоставившуюся подстроку в n-ных по счёту круглых скобках в регулярном выражении (нумерация скобок идет слева направо).

+ +

Например, шаблон /яблоко(,)\sапельсин\1/ сопоставится подстроке «яблоко, апельсин,» в строке «яблоко, апельсин, вишня, персик». Более подробный пример смотрите после этой таблицы.

+
(?:x)Сопоставляется с x, но не запоминает сопоставление. Называется «незахватывающие скобки». Сопоставленную подстроку нельзя достать из элементов [1], ..., [n] результирующего массива или из предопределённых свойств $1, ..., $9 объекта RegExp.
Квантификаторы
СимволЗначение
x* +

Сопоставляется с предшествующим элементом x ноль или более раз.

+ +

Например, шаблон /ела*/ сопоставляется с подстрокой «ел» в строке «Призрак просвистел» и подстрокой «ела» в строке «Птица пропела», но ни с чем не сопоставится в строке «Козёл хмыкнул».

+
x+ +

Сопоставляется с предшествующим элементом x один или более раз. Эквивалентен квантификатору {1,}.

+ +

Например, шаблон /о+/ сопоставляется с символом «о» в строке «конфета» и со всеми символами «о» в строке «коооооонфета».

+
x*?
+ x+?
+

Сопоставляется с предшествующим элементом x подобно квантификаторам * и +, описанным выше, однако ищет минимально возможное сопоставление.

+ +

Например, шаблон /".*?"/ сопоставляется с подстрокой «"foo"» в строке «"foo" "bar"» и не сопоставляется со строкой «"foo" "bar"», поскольку за звёздочкой * следует символ вопроса ?.

+
x? +

Сопоставляется с предшествующим элементом x ноль или один раз.

+ +

Например, шаблон /о?то?/ сопоставляется с подстрокой «от» в строке «кот» и подстрокой «то» в строке «ток».

+ +

Если символ используется сразу после какого-то из квантификаторов *, +, ?, или {}, то он делает этот квантификатор «нежадным» (сопоставление происходит минимально возможное количество раз), в противоположность «жадному» поведению квантификатора по умолчанию (сопоставление происходит максимально возможное количество раз).

+ +

Также символ используется в квантификаторах предпросмотра (?=), (?!) и (?:), также описанных в этой таблице.

+
x(?=y)Сопоставлется с x, только если за x следует y. Например, шаблон /Джек(?=Шпрот)/ сопоставлется со строкой «Джек» только если за ней следует строка «Шпрот». Шаблон /Джек(?=Шпрот|Мороз)/ сопоставлется со строкой «Джек» только если за ней следуют строки «Шпрот» или «Мороз». Однако, ни «Шпрот», ни «Мороз» не являются частью результата сопоставления.
x(?!y) +

Сопоставлется с x, только если за x не следует y. Например, шаблон /\d+(?!\.)/ сопоставляется с числом только если за ним не следует десятичная запятая.

+ +

Выражение /\d+(?!\.)/.exec('3.141') сопоставится с «141» но не с «3.141».

+
(?<=y)x +

Сопоставляется с x, только если x предшествует y

+ +

Например, /(?<=Пётр)Иванов/ сопоставится с "Иванов" только если ему будет предшествовать "Петр".
+ /(?<=Пётр|Владислав)Иванов/ сопоставится с "Иванов" только если ему будет предшествовать "Пётр" или "Владислав".
+ В любом случае, ни "Пётр" ни "Владислав" не войдут в результат сопоставления.

+
(?<!y)x + + + + + + +
+

Сопоставляется с x, только если x не предшествует y

+ +

Например, /(?<!-)\d+/ сопоставится с цифрой, только если ей не предшествует минус.
+ /(?<!-)\d+/.exec('3') вернет "3".
+  /(?<!-)\d+/.exec('-3')  не сопоставится с цифрой, тк цифре перед цифрой 3 присутствует минус.

+
+
x|y +

Сопоставляется либо с x, либо с y.

+ +

Например, шаблон /зелёное|красное/ сопоставится с подстрокой «зелёное» в строке «зелёное яблоко» и подстрокой «красное» в строке «красное яблоко».

+
x{n} +

Где n является целым положительным числом. Сопоставляется точно с n вхождениями предшествующего элемента x.

+ +

Например, шаблон /о{2}/ не сопоставится с символом «о» в слове «конфета», но сопоставится со всеми символами «о» в слове «коонфета» и с первыми двумя символами «о» в слове «кооонфета».

+
x{n,} +

Где n является целым положительным числом. Сопоставляется по крайней мере с n вхождениями предшествующего элемента x.

+ +

Например, шаблон /о{2,}/ не сопоставится с символом «о» в слове «конфета», но сопоставится со всеми символами «о» в словах «коонфета» и даже в «кооооооонфета».

+
x{n,m} +

Где n и m являются целыми положительными числами. Сопоставляется по крайней мере с n но не более, чем с m вхождениями предшествующего элемента x.

+ +

Например, шаблон /о{1,3}/ ни с чем не сопоставится в слове «кнфета», с символом «о» в слове «конфета», с двумя символами «о» в слове «коонфета» и с первыми тремя символами «о» в слове «кооооооонфета». Обратите внимание, что при сопоставлении со словом «кооооооонфета» сопоставиласть только подстрока «ооо», хотя слово содержало гораздо больше символов «о».

+
+ +

Свойства

+ +
+
{{jsxref("RegExp.prototype")}}
+
Позволяет добавлять свойства ко всем объектам регулярных выражений.
+
RegExp.length
+
Значение RegExp.length равно 2.
+
+ +
{{jsOverrides("Function", "Properties", "prototype")}}
+ +

Методы

+ +

Глобальный объект RegExp не имеет собственных методов, однако, он наследует некоторые методы через цепочку прототипов.

+ +
{{jsOverrides("Function", "Methods", "prototype")}}
+ +

Экземпляры регулярного выражения

+ +

Свойства

+ +
{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp/prototype', 'Properties')}}
+ +

Методы

+ +
{{page('/ru/docs/Web/JavaScript/Reference/Global_Objects/RegExp/prototype', 'Methods')}}
+ +

Примеры

+ +

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

+ +

Следующий скрипт использует метод {{jsxref("String.prototype.replace()", "replace()")}} экземпляра строки {{jsxref("Global_Objects/String", "String")}} для сопоставления с именем в формате имя фамилия и выводит его в формате фамилия, имя. В тесте замены скрипт использует заменители $1 и $2, которые заменяются на результаты соответствующих сопоставившихся подгрупп регулярного выражения.

+ +
var re = /(\w+)\s(\w+)/;
+var str = 'John Smith';
+var newstr = str.replace(re, '$2, $1');
+console.log(newstr);
+
+// пример с русскими буквами
+var re = /([а-яё]+)\s([а-яё]+)/i;
+var str = 'Джон Смит';
+var newstr = str.replace(re, '$2, $1');
+console.log(newstr);
+
+ +

Пример выведет «Smith, John» и «Смит, Джон»

+ +

Пример: использование регулярного выражения для разбиения строк с различными символами конца строки

+ +

Символы конца строки различаются на различных платформах (Unix, Windows и так далее). Разбиение строк из этого примера работает на всех платформах.

+ +
var text = 'Некоторый текст\nЕщё текст\r\nИ ещё\rЭто конец';
+var lines = text.split(/\r\n|\r|\n/);
+console.log(lines); // выведет [ 'Некоторый текст', 'Ещё текст', 'И ещё', 'Это конец' ]
+
+ +

Обратите внимание, что порядок шаблонов в регулярном выражении имеет значение.

+ +

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

+ +
var s = 'Please yes\nmake my day!';
+s.match(/yes.*day/);
+// Вернёт null
+s.match(/yes[^]*day/);
+// Вернёт 'yes\nmake my day'
+
+ +

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

+ +

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

+ +
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); // напечатает 'true'
+
+ +

Пример: регулярные выражения и символы Юникода

+ +

Как уже сказано выше, символьные классы \w и \W сопоставляются только с базовыми символами ASCII; то есть, с символами от «a» до «z», от «A» до «Z», от «0» до «9» и символом «_». Для сопоставления с символами из других языков, например, с кириллическими или иврита, используйте форму \uhhhh, где «hhhh» — это значение символа Юникода, записанное в шестнадцатеричной форме. Этот пример демонстрирует, как можно выделить символы Юникода, составляющие слова.

+ +
var text = 'Образец text на русском языке';
+var regex = /[\u0400-\u04FF]+/g;
+
+var match = regex.exec(text);
+console.log(match[0]);        // напечатает 'Образец'
+console.log(regex.lastIndex); // напечатает '7'
+
+var match2 = regex.exec(text);
+console.log(match2[0]);       // напечатает 'на' [не 'text']
+console.log(regex.lastIndex); // напечатает '15'
+
+// и так далее
+
+ +

Вот на этом внешнем ресурсе можно составить полный диапазон блоков Юникода для различных письменностей: regexp-unicode-block.

+ +

Пример: извлечение имени поддомена из URL

+ +
var url = 'http://xxx.domain.com';
+console.log(/[^.]+/.exec(url)[0].substr(7)); // напечатает 'xxx'
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
ECMAScript 1-е издание.СтандартИзначальное определение. Реализована в JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.10', 'RegExp')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-regexp-regular-expression-objects', 'RegExp')}}{{Spec2('ES6')}}
+ +

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

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
ВозможностьChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
Флаг «липучести» («y»){{CompatChrome("39")}} (через флаг){{CompatGeckoDesktop("1.9")}} ES4-Style {{bug(773687)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ВозможностьAndroidChrome для AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}{{CompatVersionUnknown}}
Флаг «липучести» («y»){{CompatNo}}{{CompatNo}}{{CompatGeckoMobile("1.9")}} ES4-Style {{bug(773687)}}{{CompatNo}}{{CompatNo}}{{CompatNo}}
+
+ +

Примечания по Gecko

+ +

Начиная с Gecko 34 {{geckoRelease(34)}}, в случае захвата группы с квантификаторами, предотвращающими появление группы в результате сопоставления, сопоставившийся текст для захваченной группы теперь имеет значение undefined вместо пустой строки:

+ +
// Firefox 33 или более ранние
+'x'.replace(/x(.)?/g, function(m, group) {
+  console.log("'group:" + group + "'");
+}); // 'group:'
+
+// Firefox 34 или более новые
+'x'.replace(/x(.)?/g, function(m, group) {
+  console.log("'group:" + group + "'");
+}); // 'group:undefined'
+
+ +

Обратите внимание, что для поддержания обратной совместимости, свойства RegExp.$N по-прежнему возвращают пустую строку вместо значения undefined (bug 1053944).

+ +

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

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/input/index.html b/files/ru/web/javascript/reference/global_objects/regexp/input/index.html new file mode 100644 index 0000000000..1e85d92013 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/input/index.html @@ -0,0 +1,55 @@ +--- +title: RegExp.input ($_) +slug: Web/JavaScript/Reference/Global_Objects/RegExp/input +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/input +--- +
{{JSRef}} {{non-standard_header}}
+ +

Нестандартное свойство input является статическим свойством регулярных выражений. Оно содержит строку, для которой произошло совпадение по регулярному выражению. Значение свойства также можно получить как RegExp.$_.

+ +

Синтаксис

+ +
RegExp.input
+RegExp.$_
+
+ +

Описание

+ +

Поскольку свойство input статическое, к нему можно обратиться только как RegExp.input или RegExp.$_.

+ +

Значение данного свойства изменяется каждый раз при возникновении совпадений с регулярным выражением для новой строки.

+ +

Примеры

+ +

Использование input и $_

+ +
var re = /hi/g;
+re.test('hi there!');
+RegExp.input;         // "hi there!"
+re.test('foo');       // новая проверка, совпадений нет
+RegExp.$_;            // "hi there!"
+re.test('hi world!'); // новая проверка, совпадение есть
+RegExp.$_;            // "hi world!"
+
+ +

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

+ +

Не стандартизированно. Не является частью какой-либо спецификации.

+ +

Поддержка в браузерах

+ +
+ + +

{{Compat("javascript.builtins.RegExp.input")}}

+
+ +

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

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/lastindex/index.html b/files/ru/web/javascript/reference/global_objects/regexp/lastindex/index.html new file mode 100644 index 0000000000..3b9b80efea --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/lastindex/index.html @@ -0,0 +1,130 @@ +--- +title: RegExp.lastIndex +slug: Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex +tags: + - JavaScript + - Property + - Reference + - RegExp + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastIndex +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+

Свойство lastIndex является целочисленным свойством регулярного выражения, доступным как для чтения, так и для записи, которое определяет индекс, с которого следует начинать следующее сопоставление.

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

Синтаксис

+
regExpObj.lastIndex
+ +

Описание

+

Это свойство устанавливается только в том случае, если в регулярном выражении используется флаг "g", указывающий на необходимость глобального поиска. Оно подчиняется следующим правилам:

+ + +

Примеры

+ +

Пример: использование свойства lastIndex

+

Рассмотрим следующую последовательность инструкций:

+
var re = /(привет)?/g;
+
+

Сопоставляется с пустой строкой.

+
console.log(re.exec('привет'));
+console.log(re.lastIndex);
+
+

Выведет массив ["привет", "привет"], а свойство lastIndex будет равным 6.

+
console.log(re.exec('привет'));
+console.log(re.lastIndex);
+
+

Выведет массив ["", undefined], «пустой» массив, чей нулевой элемент является сопоставившейся строкой. В данном случае, ей является пустая строка, поскольку свойство lastIndex было равно 6 (и остаётся равным 6), а строка "привет" имеет длину 6.

+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
ECMAScript 3-е издание.СтандартИзначальное определение. Реализована в JavaScript 1.2.
+ JavaScript 1.5: свойство lastIndex является свойством экземпляра {{jsxref("RegExp")}}, а не самого объекта {{jsxref("RegExp")}}.
{{SpecName('ES5.1', '#sec-15.10.7.5', 'RegExp.lastIndex')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-properties-of-regexp-instances', 'RegExp.lastIndex')}}{{Spec2('ES6')}} 
+ +

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

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

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

+ diff --git a/files/ru/web/javascript/reference/global_objects/regexp/lastmatch/index.html b/files/ru/web/javascript/reference/global_objects/regexp/lastmatch/index.html new file mode 100644 index 0000000000..94e140a0a8 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/lastmatch/index.html @@ -0,0 +1,54 @@ +--- +title: RegExp.lastMatch ($&) +slug: Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/lastMatch +--- +
{{JSRef}} {{non-standard_header}}
+ +

Нестандартное свойство lastMatch является доступным только для чтения статическим свойством регулярных выражений. Оно содержит последние совпавшие символы. Значение свойства также можно получить как RegExp.$&.

+ +

Синтаксис

+ +
RegExp.lastMatch
+RegExp['$&']
+
+ +

Описание

+ +

Поскольку свойство lastMatch  статическое, к нему можно обратиться только как  RegExp.lastMatch или RegExp['$&'].

+ +

Значение свойства lastMatch доступно только для чтение и изменяется при успешном совпадении с регулярным выражением.

+ +

Поскольку использование символа "&" приведет к выбрасыванию ошибки {{jsxref("SyntaxError")}}, обратиться к данному свойству с помощью точечной нотации(RegExp.$&) нельзя. Вместо этого стоит использовать скобочную нотацию (RegExp['$&']).

+ +

Примеры

+ +

Использование lastMatch и $&

+ +
var re = /hi/g;
+re.test('hi there!');
+RegExp.lastMatch; // "hi"
+RegExp['$&'];     // "hi"
+
+ +

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

+ +

Не стандартизированно. Не является частью какой-либо спецификации.

+ +

Поддержка в браузерах

+ +
+ + +

{{Compat("javascript.builtins.RegExp.lastMatch")}}

+
+ +

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

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/multiline/index.html b/files/ru/web/javascript/reference/global_objects/regexp/multiline/index.html new file mode 100644 index 0000000000..734964950f --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/multiline/index.html @@ -0,0 +1,115 @@ +--- +title: RegExp.prototype.multiline +slug: Web/JavaScript/Reference/Global_Objects/RegExp/multiline +tags: + - JavaScript + - Property + - Prototype + - Reference + - RegExp + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/multiline +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+

Свойство multiline указывает, использовался ли в определении регулярного выражения флаг "m". Свойство multiline является свойством только для чтения и принадлежит экземпляру регулярного выражения.

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

Описание

+

Значение свойства multiline имеет тип {{jsxref("Global_Objects/Boolean", "Boolean")}} и содержит true, если при определении регулярного выражения использовался флаг "m"; в противном случае оно содержит false. Флаг "m" указывает на то, что многострочная входная строка должна рассматриваться в виде нескольких строк. Например, если используется флаг "m", специальные символы "^" и "$" меняют своё поведение: с установленным флагом они сопоставляются в началом / концом каждой строки в многострочной строке, а не с началом / концом всей многострочной строки.

+

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

+ +

Примеры

+ +

Пример: использование свойства multiline

+
var regex = new RegExp('foo', 'm');
+
+console.log(regex.multiline); // true
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
ECMAScript 3-е издание.СтандартИзначальное определение. Реализована в JavaScript 1.2.
+ JavaScript 1.5: свойство multiline является свойством экземпляра {{jsxref("Global_Objects/RegExp", "RegExp")}}, а не самого объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}.
{{SpecName('ES5.1', '#sec-15.10.7.4', 'RegExp.prototype.multiline')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-get-regexp.prototype.multiline', 'RegExp.prototype.multiline')}}{{Spec2('ES6')}}Свойство multiline теперь является свойством доступа в прототипе объекта, а не собственным свойством данных экземпляра.
+ +

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

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

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

+ diff --git a/files/ru/web/javascript/reference/global_objects/regexp/n/index.html b/files/ru/web/javascript/reference/global_objects/regexp/n/index.html new file mode 100644 index 0000000000..a785e92f01 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/n/index.html @@ -0,0 +1,64 @@ +--- +title: RegExp.$1-$9 +slug: Web/JavaScript/Reference/Global_Objects/RegExp/n +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/n +--- +
{{JSRef}} {{non-standard_header}}
+ +

Нестандартные свойства $1, $2, $3, $4, $5, $6, $7, $8, $9 являются статическими и доступными только для чтения свойствами регулярных выражений, которые содержат найденые подстроки, обернутые в скобки.

+ +

Синтаксис

+ +
RegExp.$1
+RegExp.$2
+RegExp.$3
+RegExp.$4
+RegExp.$5
+RegExp.$6
+RegExp.$7
+RegExp.$8
+RegExp.$9
+
+ +

Описание

+ +

Свойства $1, ..., $9 являются статичными, они не являются свойствами конкретного объекта регулярного выражения, поэтому вы всегда можете использовать их как RegExp.$1, ..., RegExp.$9.

+ +

Значения этих свойств не доступны для изменения, они модифицируются всякий раз при успешном совпадении регулярного выражения.

+ +

Количество возможных подстрок в круглых скобках неограничено, но объект RegExp может содержать в себе только последние 9. Вы можете получить доступ ко всем подстрокам, совпавшим с выражениями внутри круглых скобок, с помощью индексов возвращенного массива.

+ +

Эти свойства могу использоваться при замене текста в методе {{jsxref("String.replace")}}. Когда используете его, не добавляйте их в RegExp. Пример ниже демонстрирует правильное применение. Когда круглые скобки не включены в регулярное выражение, код интерпритирует такие значения, как $n буквально, как литерал (n - положительное число).

+ +

Примеры

+ +

Использование $n со String.replace

+ +

Следующий код использует метод {{jsxref("String.prototype.replace()", "replace()")}} строки {{jsxref("String")}}, чтобы преобразовать строку в формате Имя Фамилия в формат Фамилия, Имя. В коде замены текста используются $1 и $2 чтобы указать порядок вывода результата совпадений полученных при сравнивании с шаблоном регулярного выражения, имеющего круглые скобки.

+ +
var re = /(\w+)\s(\w+)/;
+var str = 'John Smith';
+str.replace(re, '$2, $1'); // "Smith, John"
+RegExp.$1; // "John"
+RegExp.$2; // "Smith"
+
+ +

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

+ +

Не стандартизированно. Не является частью какой-либо спецификации

+ +

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

+ +

{{Compat("javascript.builtins.RegExp.n")}}

+ +
+ +

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

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/prototype/index.html b/files/ru/web/javascript/reference/global_objects/regexp/prototype/index.html new file mode 100644 index 0000000000..dd6989d2fd --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/prototype/index.html @@ -0,0 +1,140 @@ +--- +title: RegExp.prototype +slug: Web/JavaScript/Reference/Global_Objects/RegExp/prototype +tags: + - JavaScript + - Property + - Prototype + - Reference + - RegExp + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+

Свойство RegExp.prototype представляет объект прототипа для констуктора {{jsxref("Global_Objects/RegExp", "RegExp")}}.

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

Описание

+

Описание экземпляров регулярных выражений смотрите на странице документации, посвящёной объекту {{jsxref("Global_Objects/RegExp", "RegExp")}}. Экземпляры регулярных выражений наследуются от RegExp.prototype. Изменение объекта прототипа распространяется на все экземпляры регулярных выражений.

+ +

Свойства

+

Также смотрите устаревшие свойства объекта RegExp

+

Обратите внимание, что некоторые свойста объекта {{jsxref("Global_Objects/RegExp", "RegExp")}} имеют как длинные, так и короткие (Perl-подобные) имена. Оба имени всегда ссылаются на одно и тоже значение. Perl — это язык программирования, откуда JavaScript взял свои регулярные выражения.

+
+
RegExp.prototype.constructor
+
Определяет функцию, создающую прототип объекта.
+
{{jsxref("RegExp.prototype.global")}}
+
Определяет, надо ли проверять регулярное выражение на все возможные сопоставления со строкой, или достаточно только первый раз.
+
{{jsxref("RegExp.prototype.ignoreCase")}}
+
Определяет, надо ли игнорировать регистр символов при попытке сопоставления со строкой.
+
{{jsxref("RegExp.prototype.lastIndex")}}
+
Индекс, по которому начинается следующее сопоставление.
+
{{jsxref("RegExp.prototype.multiline")}}
+
Определяет, надо ли искать по нескольким строкам.
+
{{jsxref("RegExp.prototype.source")}}
+
Текст шаблона.
+
{{jsxref("RegExp.prototype.sticky")}} {{experimental_inline}}
+
Определяет, включён ли режим «липкого» поиска.
+
{{jsxref("RegExp.prototype.flags")}} {{experimental_inline}}
+
Строка, состоящая из флагов объекта регулярного выражения.
+
+
{{jsOverrides("Object", "properties", "constructor", "global", "ignoreCase", "lastIndex", "multiline", "source", "sticky")}}
+ +

Методы

+

Также смотрите устаревшие методы объекта RegExp

+
+
{{jsxref("RegExp.prototype.exec()")}}
+
Выполняет поиск сопоставлений регулярного выражения в своём строковом параметре.
+
{{jsxref("RegExp.prototype.test()")}}
+
Пытается сопоставить регулярное выражение своему строковому параметру.
+
{{jsxref("RegExp.prototype.toSource()")}} {{non-standard_inline}}
+
Возвращает объектный литерал, представляющий указаный объект; вы можете использовать это значение для создания нового объекта. Переопределяет метод {{jsxref("Object.prototype.toSource()")}}.
+
{{jsxref("RegExp.prototype.toString()")}}
+
Возвращает строку, представляющую указаннный объект. Переопределяет метод {{jsxref("Object.prototype.toString()")}}.
+
+
{{jsOverrides("Object", "Methods", "exec", "test", "toSource", "toString")}}
+ +

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

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

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

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

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

+ diff --git a/files/ru/web/javascript/reference/global_objects/regexp/source/index.html b/files/ru/web/javascript/reference/global_objects/regexp/source/index.html new file mode 100644 index 0000000000..32d0bb687d --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/source/index.html @@ -0,0 +1,121 @@ +--- +title: RegExp.prototype.source +slug: Web/JavaScript/Reference/Global_Objects/RegExp/source +tags: + - JavaScript + - Property + - Prototype + - Reference + - RegExp + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/source +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+ +

Свойство source возвращает {{jsxref("Global_Objects/String", "строку", "", 1)}}, содержащую текст шаблона регулярного выражения без прямых слешей с обеих сторон и без флагов регулярного выражения.

+ +

Примеры

+ +

Пример: использование свойства source

+ +
var regex = /fooBar/ig;
+
+console.log(regex.source); // 'fooBar', не содержит прямые слеши /.../ и флаги 'ig'.
+
+ +

Начиная с ECMAScript 5, свойство source больше не возвращает пустую строку для пустых регулярных выражений. Вместо этого, возвращается строка" (?:)". Кроме того, теперь экранируются символы окончания строк (такие как, "\n").

+ +
new RegExp().source; // "(?:)"
+
+new RegExp('\n').source === '\n';  // true, до появления ES5
+new RegExp('\n').source === '\\n'; // true, начиная с ES5
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
ECMAScript 3-е издание.СтандартИзначальное определение. Реализована в JavaScript 1.2.
+ JavaScript 1.5: свойство source является свойством экземпляра {{jsxref("Global_Objects/RegExp", "RegExp")}}, а не самого объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}.
{{SpecName('ES5.1', '#sec-15.10.7.1', 'RegExp.prototype.source')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-get-regexp.prototype.source', 'RegExp.prototype.source')}}{{Spec2('ES6')}}Свойство source теперь является свойством доступа в прототипе объекта, а не собственным свойством данных экземпляра.
+ +

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

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

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

+ + + +
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}}
+
+ +

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

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/test/index.html b/files/ru/web/javascript/reference/global_objects/regexp/test/index.html new file mode 100644 index 0000000000..3723064858 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/test/index.html @@ -0,0 +1,143 @@ +--- +title: RegExp.prototype.test() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/test +tags: + - JavaScript + - Method + - Prototype + - Reference + - RegExp + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/test +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+ +

Метод test() выполняет поиск сопоставления регулярного выражения указанной строке. Возвращает true или false.

+ +

Синтаксис

+ +
regexObj.test(str)
+ +

Параметры

+ +
+
str
+
Строка, с которой сопоставляется регулярное выражение.
+
+ +

Возвращаемое значение

+ +

Логическое значение: true или false.

+ +

Описание

+ +

Используйте метод test(), если вы просто хотите узнать, находится ли шаблон в строке (он почти аналогичен методу {{jsxref("String.prototype.search()")}}, только вместо индекса шаблона возвращает true или false); для получения дополнительной информации о сопоставлении (но за счёт более медленного выполнения) используйте метод {{jsxref("RegExp.prototype.exec()", "exec()")}} (он аналогичен методу {{jsxref("String.prototype.match()")}}). Как и при вызове метода {{jsxref("RegExp.prototype.exec()", "exec()")}} (или при совместном с ним вызове), метод test(), вызванный несколько раз на одном и том же экземпляре глобального регулярного выражения, будет начинать проверку с конца предыдущего сопоставления.

+ +

Примеры

+ +

Пример: использование метода test()

+ +

Следующий пример печатает сообщение, в зависимости от того, была ли проверка успешной:

+ +
function testinput(re, str){
+  var midstring;
+  if (re.test(str)) {
+    midstring = ' содержит ';
+  } else {
+    midstring = ' не содержит ';
+  }
+  console.log(str + midstring + re.source);
+}
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
ECMAScript 3-е издание.СтандартИзначальное определение. Реализована в JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.10.6.3', 'RegExp.test')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-regexp.prototype.test', 'RegExp.test')}}{{Spec2('ES6')}}
+ +

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

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

Примечания по Gecko

+ +

До Gecko 8.0 {{geckoRelease("8.0")}} метод test() был реализован неправильно; когда он вызывался без параметров, он проверял на сопоставление предыдущее проверенное значение (свойство RegExp.input) вместо сопоставления со строкой "undefined". Это поведение было исправлено; теперь /undefined/.test() правильно вернёт true вместо ошибки.

+ +

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

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/tosource/index.html b/files/ru/web/javascript/reference/global_objects/regexp/tosource/index.html new file mode 100644 index 0000000000..470f288df6 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/tosource/index.html @@ -0,0 +1,106 @@ +--- +title: RegExp.prototype.toSource() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/toSource +tags: + - JavaScript + - Method + - Non-standard + - Prototype + - Reference + - RegExp +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toSource +--- +
{{JSRef("Global_Objects", "RegExp")}} {{non-standard_header}}
+ +

Сводка

+ +

Метод toSource() возвращает строковое представление исходного кода объекта.

+ +

Синтаксис

+ +
regexObj.toSource()
+RegExp.toSource()
+
+ +

Параметры

+ +

Нет.

+ +

Описание

+ +

Метод toSource() возвращает следующие значения:

+ + + +

Этот метод обычно вызывается внутри движка JavaScript, а не явно в коде.

+ +

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

+ +

Не является частью какого-либо стандарта. Реализована в JavaScript 1.3.

+ +

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

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

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

+ + diff --git a/files/ru/web/javascript/reference/global_objects/regexp/tostring/index.html b/files/ru/web/javascript/reference/global_objects/regexp/tostring/index.html new file mode 100644 index 0000000000..2e0d9badec --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/tostring/index.html @@ -0,0 +1,116 @@ +--- +title: RegExp.prototype.toString() +slug: Web/JavaScript/Reference/Global_Objects/RegExp/toString +tags: + - JavaScript + - Method + - Prototype + - Reference + - RegExp + - регулярные выражения +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toString +--- +
{{JSRef("Global_Objects", "RegExp")}}
+ +

Сводка

+

Метод toString() возвращает строковое представление регулярного выражения.

+ +

Синтаксис

+
regexObj.toString()
+ +

Параметры

+

Нет.

+ +

Описание

+

Объект {{jsxref("Global_Objects/RegExp", "RegExp")}} переопределяет метод toString() объекта {{jsxref("Global_Objects/Object", "Object")}}; он не наследует метод {{jsxref("Object.prototype.toString()")}}. Для объектов {{jsxref("Global_Objects/RegExp", "RegExp")}}, метод toString() возвращает строковое представление регулярного выражения.

+ +

Примеры

+ +

Пример: использование метода toString()

+

Следующий пример отображает строковое значение объекта {{jsxref("Global_Objects/RegExp", "RegExp")}}:

+
var myExp = new RegExp('a+b+c');
+console.log(myExp.toString());  // отобразит '/a+b+c/'
+
+var foo = new RegExp('bar', 'g');
+console.log(foo.toString());    // отобразит '/bar/g'
+
+ +

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

+ + + + + + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарии
ECMAScript 3-е издание.СтандартИзначальное определение. Реализована в JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.9.5.2', 'RegExp.prototype.toString')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-regexp.prototype.tostring', 'RegExp.prototype.toString')}}{{Spec2('ES6')}} 
+ +

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

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

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

+ diff --git a/files/ru/web/javascript/reference/global_objects/regexp/unicode/index.html b/files/ru/web/javascript/reference/global_objects/regexp/unicode/index.html new file mode 100644 index 0000000000..6f585f94f7 --- /dev/null +++ b/files/ru/web/javascript/reference/global_objects/regexp/unicode/index.html @@ -0,0 +1,70 @@ +--- +title: RegExp.prototype.unicode +slug: Web/JavaScript/Reference/Global_Objects/RegExp/unicode +translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/unicode +--- +
{{JSRef}}
+ +

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

+ +
{{EmbedInteractiveExample("pages/js/regexp-prototype-unicode.html", "taller")}}
+ + + +
{{js_property_attributes(0, 0, 1)}}
+ +

Описание

+ +

Значение unicode является {{jsxref ("Boolean")}}. True, если используется флаг u, или false - противном случае. Флаг «u» позволяет использовать различные функции, связанные с Unicode. С флагом «u» любые escape-последовательности кода Unicode будут интерпретироваться как таковые, например.

+ +

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

+ +

Примеры

+ +

Испльзование свойства unicode

+ +
var regex = new RegExp('\u{61}', 'u');
+
+console.log(regex.unicode); // true
+
+ +

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

+ + + + + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName('ES2015', '#sec-get-regexp.prototype.unicode', 'RegExp.prototype.unicode')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.unicode', 'RegExp.prototype.unicode')}}{{Spec2('ESDraft')}} 
+ +

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

+ +
+ + +

{{Compat("javascript.builtins.RegExp.unicode")}}

+
+ +

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

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