Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

como o replace foi usado aqui

Olá a minha duvida é sobre o metodo replace mesmo tendo acessado a documentação e aprendido sobre ele. durante o curso não ficou muito claro pra mim.

export default function ehUmCpf(campo) {
    const cpf = campo.value.replace(/\.|-/g, "");
    validaNumerosRepetidos(cpf);

no caso ele encontraria o valor mas substituiria por uma string vazia ? embora não seja isso o que aconteça por isso fiquei confuso. porque pelo que eu entendi era isso que o metodo fazia.

2 respostas
solução!

O método replace, da forma como está sendo utilizado, procura todos os '.'s e '-'s do campo e substitui eles por uma string vazia, que é o mesmo que removê-los.

Abaixo deixei uma versão comentada da função ehUmCpf, explicando o que está acontecendo.

export default function ehUmCpfValido(campo) {
    const cpfComPontosEHifens = campo.value; // "123.456.789-00"
    const pontosEHifensRegex = /\.|-/g;

    const cpfSemPontosEHifens = cpfComPontosEHifens.replace(pontosEHifensRegex, ""); // "12345678900"
    //const cpfComUnderlines = cpfComPontosEHifens.replace(pontosEHifensRegex, "_"); // "123_456_789_00"

    validaNumerosRepetidos(cpfSemPontosEHifens);
}

perfeito. acho que minha confusão foi por não ter entendido que a regex se tratava de pontos e hifens.