Групи в метода replace в регулярните изрази на JavaScript

При работа с метода replace, ако сложим нещо в група в регулярния израз, то в низа за замяна можем да вмъкнем съдържанието на тази група като напишем знака долар $ и номера на групата. Например, $1 - първата група, $2 - втората група и така нататък.

Защо е нужно това и как да го използваме, нека да разгледаме с примери.

Пример

Нека да намерим всички числа и вместо тях да вмъкнем същите числа, но в кръгли скоби. За целта всички намерени числа ще заменим с тях самите, но в скоби:

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

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

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

Пример

Нека да намерим всички низове, представляващи числа с 'x' около тях и заменим тези числа със същите, но с '!' знаци около тях:

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'.