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
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
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