6.7 Substituição de caracteres
As expressões regulares também são utilizadas como parâmetro do método replace( ), quando quisermos substituir um caractere (ou um conjunto de caracteres) por outro em uma string. Por padrão, a substituição incide apenas sobre a primeira ocorrência do caractere na string. Com o uso de uma expressão regular, com a opção g (global) indicada, a troca ocorre em toda a string. Um detalhe importante é o de que a string mantém o seu conteúdo original. Apenas a variável que recebe o retorno do método ou o conteúdo que é apresentado pelo programa vai conter as substituições dos caracteres indicados. A sintaxe do método replace( ) é a seguinte:
var novaStr = str.replace(caracterePesquisado, novoCaractere);
Portanto, se a variável senha tiver o conteúdo indicado a seguir:
var senha = "ABACAD";
A execução do método replace( ) sobre essa variável vai produzir os seguintes novos conteúdos:
var senhal = senha.replace("A", "X"); // XBACAD var senhaZ - senha.replace(/A/g, "X"); // XBXCXD
Nesses exemplos, com uma string sendo passada no caractere pesquisado, para senha1, a troca ocorre apenas para o primeiro ‘A”. Já para senha2, com a indicação de uma expressão regular com o g, a troca é de todas as letras “A” por “X”. Também podemos utilizar o método replace( ) para retirar um caractere de uma string. Acompanhe os exemplos:
<script> var app = "App Controle Financeiro"; var app2 - app.replace(" ", // AppControle Financeiro var app3 = app.replace(/ /g, // AppControleFinanceiro var app4 = app.replace(/ /g, "").toLowerCase(); // appcontrolefinanceiro </script>
Novamente, na variável app2, quando uma string é passada como primeiro argumento do método replace(), a troca do espaço, ou melhor, a retirada do espaço, já que estamos trocando por um ocorre apenas para o primeiro espaço na string. Para a variável app3, como passamos como argumento uma expressão regular com a opção g, a substituição ocorre em toda a string. Já para app4, a troca é seguida por uma conversão dos caracteres para letras minúsculas.
No Exercício 6.c, no final deste capítulo, que deve verificar se uma frase é um palíndromo, uma boa dica é utilizar o método replace( ) para retirar os espaços em branco de uma string em toda a frase antes de realizar a análise dos caracteres.