RegExp.$1, …, RegExp.$9
Baseline Ограниченная доступность
Эта функция не является Baseline, так как она не работает в некоторых наиболее широко используемых браузерах.
Устарело: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут по-прежнему поддерживать ее, она могла быть удалена из соответствующих веб-стандартов, может находиться в процессе удаления или сохраняться только для целей совместимости. Избегайте ее использования и по возможности обновите существующий код; см. таблицу совместимости внизу этой страницы, чтобы принять решение. Имейте в виду, что эта функция может перестать работать в любой момент.
Примечание: Все статические свойства RegExp, которые глобально предоставляют состояние последнего совпадения, устарели. См. устаревшие возможности RegExp для получения дополнительной информации.
Статические свойства доступа RegExp.$1, …, RegExp.$9 возвращают совпавшие подстроки в скобках.
Описание
Поскольку $1–$9 являются статическими свойствами RegExp, вы всегда используете их как RegExp.$1, RegExp.$2 и т. д., а не как свойства созданного вами объекта RegExp.
Значения $1, …, $9 обновляются всякий раз, когда экземпляр RegExp (но не подкласса RegExp) успешно совпадает. Если совпадений не было или последнее совпадение не имеет соответствующей захватывающей группы, соответствующее свойство будет пустой строкой. Сеттер каждого свойства является undefined, поэтому вы не можете изменять свойства напрямую.
Количество возможных подстрок в скобках неограниченно, но объект RegExp может содержать только первые девять. Вы можете получить доступ ко всем подстрокам в скобках через индексы возвращаемого массива.
$1, …, $9 также можно использовать в строке замены String.prototype.replace(), но это не связано с устаревшими свойствами RegExp.$n.
Примеры
Использование $n с RegExp.prototype.test()
Следующий скрипт использует метод RegExp.prototype.test() для извлечения числа из общей строки.
const str = "Test 24"; const number = /(\d+)/.test(str) ? RegExp.$1 : "0"; number; // "24"
Обратите внимание, что любые операции, связанные с использованием других регулярных выражений между вызовом re.test(str) и свойством RegExp.$n, могут иметь побочные эффекты, поэтому доступ к этим специальным свойствам следует выполнять мгновенно, иначе результат может быть неожиданным.
Спецификации
Совместимость с браузерами
| Десктоп | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
n |
1 |
12 |
1 |
5 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
См. также
RegExp.input($_)RegExp.lastMatch($&)RegExp.lastParen($+)RegExp.leftContext($`)RegExp.rightContext($')
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/n