MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

RegExp.$1-$9

Не стандартно
Эта возможность не является стандартной и стандартизировать её пока никто не собирается. Не используйте её на сайтах, смотрящих во внешний мир: она будет работать не у всех пользователей. Также могут присутствовать большие несовместимости между реализациями и её поведение может в будущем измениться.

Не стандартизированные $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. Вы можете получить доступ ко всем подстрокам совпавшим с выражениями внутри круглых скобок с помощью индексов возвращенного массива.

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

Примеры

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

Следующий код использует replace() метод строки 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"

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

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

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

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) (Да) (Да) (Да)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) (Да) (Да) (Да) (Да) (Да)

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

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

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