Capturas por defecto en el método replace en expresiones regulares JavaScript

En el método replace, además de las capturas con sus números, también siempre están disponibles las capturas estándar: %vFran - toda la coincidencia encontrada, y - la parte de la cadena antes y después de la coincidencia. Veamos su funcionamiento con ejemplos.

Ejemplo

Encontremos todos los números y envolvámoslos entre paréntesis redondos:

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

Como resultado, se guardará lo siguiente en la variable:

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

Ejemplo

Encontremos el símbolo @ y reemplacémoslo por lo que está delante de él, la arroba, y lo que está después de él. Escribamos todo esto entre paréntesis redondos:

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

Como resultado, se guardará lo siguiente en la variable:

javascript'123(123@456)456'

Ejemplo

Supongamos que queremos encontrar el dólar y envolverlo entre comillas ``. En este caso, para que no sea interpretado como un comando, el dólar debe duplicarse:

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

Como resultado, se guardará lo siguiente en la variable:

javascript'aaa `$` bbb'

Problemas prácticos

Задание 1

Se da la siguiente cadena:

javascriptlet str = 'a1b2c3';

Escriba una expresión regular que escriba al lado de cada dígito el mismo dígito.

Задание 2

Se da la siguiente cadena:

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

Reemplace los dominios por enlaces del tipo:

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