Capturas padrão no método replace em expressões regulares JavaScript

No método replace, além das capturas com seus próprios números, também estão sempre disponíveis capturas padrão: %vFran - toda a correspondência encontrada, e - a parte da string antes e depois da correspondência. Vamos ver o funcionamento com elas em exemplos.

Exemplo

Vamos encontrar todos os números e envolvê-los em parênteses curvos:

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

Como resultado, o seguinte será armazenado na variável:

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

Exemplo

Vamos encontrar o símbolo @ e substituí-lo por o que está antes dele, o arroba, e o que está depois dele. Tudo isso vamos colocar entre parênteses curvos:

javascriptlet str = '123@456';
let res = str.replace(/@/g, "( @ )");

Como resultado, o seguinte será armazenado na variável:

javascript'123(123@456)456'

Exemplo

Suponha que queremos encontrar um cifrão e envolvê-lo em aspas ``. Neste caso, para que não fosse interpretado como um comando, o cifrão precisa ser duplicado:

javascriptlet str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`$`');

Como resultado, o seguinte será armazenado na variável:

javascript'aaa `$` bbb'

Problemas práticos

Задание 1

Dada a string:

javascriptlet str = 'a1b2c3';

Escreva uma expressão regular que, ao lado de cada dígito, escreva o mesmo dígito.

Задание 2

Dada a string:

javascriptlet str = 'sss site.ru zzz site.com kkk';

Substitua os domínios por links como:

html<a href="http://site.ru">site.ru</a>