# Карманы в методе replace в регулярках JavaScript

При работе с методом `replace`, если мы что-то положим в карман в регулярке, то в строке замены мы можем вставить содержимое этого кармана написав знак доллара `$` и номер кармана. Например, `$1` - первый карман, `$2` - второй карман и так далее.

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

## Пример

Давайте найдем все числа и вместо них вставим эти же числа, но в круглых скобках. Для этого все найденные числа мы будем заменять на них самих же, но в скобках:

`let str = '1 23 456 xax'; let res = str.replace(/(\d+)/g, '($1)');`

В результате в переменную запишется следующее:

`'(1) (23) (456) xax'`

## Пример

Давайте найдем все строки, представляющие собой числа с иксами вокруг и заменим эти числа на них же, но с `'!'` знаками вокруг:

`let str = 'x1x x23x x456x xax'; let res = str.replace(/x(\d+)x/g, '!$1!');`

В результате в переменную запишется следующее:

`'!1! !23! !456! xax'`

## Пример

Давайте решим следующую задачу: даны строки вида `'aaa@bbb'` - буквы, потом собака, потом буквы. Нужно поменять местами буквы до @ и после.

`let str = 'aaa@bbb ссс@ddd'; let res = str.replace(/([a-z]+)@([a-z]+)/g, '$2@$1');`

В результате в переменную запишется следующее:

`'bbb@aaa ddd@ссс'`

## Практические задачи

Дана строка:

`let str = '12 34 56 78';`

Поменяйте местами цифры во всех двухзначных числах.

Дана строка с датой:

`let str = '31.12.2025';`

Преобразуйте эту дату в `'2025.12.31'`.

←→
↑
en ru