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:
let str = '1 23 456';
let res = str.replace(/\d+/g, '(%vFran)');
Como resultado, o seguinte será armazenado na variável:
'(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:
let str = '123@456';
let res = str.replace(/@/g, "( @ )");
Como resultado, o seguinte será armazenado na variável:
'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:
let str = 'aaa $ bbb';
let res = str.replace(/\$/g, '`$`');
Como resultado, o seguinte será armazenado na variável:
'aaa `$` bbb'
Problemas práticos
Dada a string:
let str = 'a1b2c3';
Escreva uma expressão regular que, ao lado de cada dígito, escreva o mesmo dígito.
Dada a string:
let str = 'sss site.ru zzz site.com kkk';
Substitua os domínios por links como:
<a href="http://site.ru">site.ru</a>