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"
Спецификации
Не стандартизированной. Не является частью какой-либо спецификации
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
-
Non-standard
RegExp.input ($_)
-
Non-standard
RegExp.lastMatch ($&)
-
Non-standard
RegExp.lastParen ($+)
-
Non-standard
RegExp.leftContext ($`)
-
Non-standard
RegExp.rightContext ($')