Quando eu digito o cpf válido ele fica como invalido, no ** validityState** consta que o tipo de erro patternMismatch está como true. fiz aquele teste que foi realizado em aulas passadas para ver se o cpf existe ou não existe..
if(validaNumerosRepetidos(cpf)||validaPrimeiroDigito(cpf)||validaSegundoDigito(cpf)){
console.log('não existe')
}
else{
console.log('existe')
}
E o que acontece é que o teste diz que o cpf existe mas o patternMismatch fica como true sendo assim msg de erro Por favor, preencha um CPF válido.
Codigo
valida-cpf
export default function ehUmCpf(campo){
const cpf = campo.value.replace(/\.|-/g,"");
if(validaNumerosRepetidos(cpf)||validaPrimeiroDigito(cpf)||validaSegundoDigito(cpf)){
console.log('não existe')
campo.setCustomValidity(' ');
}else{
console.log('existe')
}
}
function validaNumerosRepetidos(cpf){
const numerosRepetidos = [
'11111111111',
'22222222222',
'33333333333',
'44444444444',
'55555555555',
'66666666666',
'77777777777',
'88888888888',
'99999999999',
]
return numerosRepetidos.includes(cpf)
}
function validaPrimeiroDigito(cpf){
let soma = 0;
let multiplicador = 10;
for(let x = 0; x < 9; x++){
soma += cpf[x] * 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 x = 0; x < 10; x++){
soma += cpf[x] * multiplicador;
multiplicador--;
}
soma = (soma*10)%11;
if(soma == 10 || soma == 11){
soma = 0;
}
return soma !=cpf[10];
}