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

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

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

Пример

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

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

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

javascript'(1) (23) (456) xax'

Пример

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

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

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

javascript'!1! !23! !456! xax'

Пример

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

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

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

javascript'bbb@aaa ddd@ccc'

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

Задание 1

Дана строка:

javascriptlet str = '12 34 56 78';

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

Задание 2

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

javascriptlet str = '31.12.2025';

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