2
respostas

Quando eu coloco meu proprio cpf não funciona

Deu tudo certo, o cpf do gerador de cpf funciona funciona normal, mas o meu próprio cpf não funciona, retorna como não existente

2 respostas

Rodrigo tudo bem? Vou te enviar o meu código( arquivo valida-cpf.js) para você comparar com o seu:

export default function ehUmCPF(campo) { const cpf = campo.value.replace(/.|-/g, ""); if (validaNumerosRepetidos(cpf) || validaPrimeiroDigito(cpf) || validaSegundoDigito(cpf)) { console.log("Esse cpf não existe!") } else { console.log("Existe!") } }

function validaNumerosRepetidos(cpf) { const numerosRepetidos = [ '00000000000', '11111111111', '22222222222', '33333333333', '44444444444', '55555555555', '66666666666', '77777777777', '88888888888', '99999999999' ]

return numerosRepetidos.includes(cpf)

}

function validaPrimeiroDigito(cpf) { let soma = 0; let multiplicador = 10;

for (let tamanho = 0; tamanho < 9; tamanho++) {
    soma += cpf[tamanho] * multiplicador;
    multiplicador--
}

soma = (soma * 10) % 11;

if (soma == 10 || soma == 11) {
    soma = 0;
}

return soma != cpf[9];

}

function validaSegundoDigito(cpf) { let soma = 0; let multiplicador = 11;

for (let tamanho = 0; tamanho < 10; tamanho++) {
    soma += cpf[tamanho] * multiplicador;
    multiplicador--
}

soma = (soma * 10) % 11;

if (soma == 10 || soma == 11) {
    soma = 0;
}

return soma != cpf[10];

}

Olá, Rodrigo

Estava com o mesmo problema, pois meu CPF termina em 1 e o if regra de validação do segundo dígito do vídeo ficou igual ao if da regra do primeiro dígito if(soma == 10 || soma == 1), o que está errado, pois a validação do segundo dígito é: se o resto for maior ou igual a 10 o segundo dígito será 0, if (soma == 10 || soma == 11), conforme o Telmo respondeu acima, ou if (soma >= 10).

:D