Estou tentando validar o cpf digitado pelo usuário na hora de salvar, porém a validaçção não esta funcionando... Salva mesmo digitando qualquer coisa. Minha função esta assim:
salvar() {
if (this.formulario.valid) {
const dadosFormulario = this.formulario.value;
const cpfOriginal = dadosFormulario.cpf;
this.removerMascaras();
if(!ValidarCpf.cpf(cpfOriginal)) {
console.log('Passei na validação');
}
const cpf1 = dadosFormulario.cpf;
const dataNascimentoFormatada = this.formatarDataParaJSON(dadosFormulario.dataNascimento);
this.pessoa = {
id: null,
nome: dadosFormulario.nome,
nomeSocial: dadosFormulario.nomeSocial,
dataNascimento: dataNascimentoFormatada,
cpf: dadosFormulario.cpf,
rg: dadosFormulario.rg,
email: dadosFormulario.email,
telefone: dadosFormulario.telefone,
whats: dadosFormulario.whats,
nomeMae: dadosFormulario.nomeMae,
nomePai: dadosFormulario.nomePai,
sexo: dadosFormulario.sexo.nome,
endereco: {
logradouro: dadosFormulario.logradouro,
bairro: dadosFormulario.bairro,
numero: dadosFormulario.numero,
cidade: dadosFormulario.cidade,
cep: dadosFormulario.cep,
uf: dadosFormulario.estado.nome,
complemento: '',
},
};
this.service.verificarExistenciaCPF(cpf1).subscribe(cpfExiste => {
if (cpfExiste) {
this.messageService.add({ severity: 'error', summary: 'Erro', detail: 'CPF já cadastrado', life: 3000 });
} else {
this.service.salvarPessoa(this.pessoa).subscribe((resposta) => {
if (resposta) {
this.resetForm();
this.messageService.add({ severity: 'success', summary: 'Successo', detail: 'A pessoa foi criada com sucesso!', life: 3000 });
this.tranformaPessoaDialog = true;
} else {
}
});
}
});
}
}
Minha classe de validação:
public static cpf(cpf: string): boolean {
if (cpf == null) {
return false;
}
if (cpf.length != 11) {
return false;
}
if ((cpf == '00000000000') || (cpf == '11111111111') || (cpf == '22222222222') || (cpf == '33333333333') || (cpf == '44444444444') || (cpf == '55555555555') || (cpf == '66666666666') || (cpf == '77777777777') || (cpf == '88888888888') || (cpf == '99999999999')) {
return false;
}
let numero: number = 0;
let caracter: string = '';
let numeros: string = '0123456789';
let j: number = 10;
let somatorio: number = 0;
let resto: number = 0;
let digito1: number = 0;
let digito2: number = 0;
let cpfAux: string = '';
cpfAux = cpf.substring(0, 9);
for (let i: number = 0; i < 9; i++) {
caracter = cpfAux.charAt(i);
if (numeros.search(caracter) == -1) {
return false;
}
numero = Number(caracter);
somatorio = somatorio + (numero * j);
j--;
}
resto = somatorio % 11;
digito1 = 11 - resto;
if (digito1 > 9) {
digito1 = 0;
}
j = 11;
somatorio = 0;
cpfAux = cpfAux + digito1;
for (let i: number = 0; i < 10; i++) {
caracter = cpfAux.charAt(i);
numero = Number(caracter);
somatorio = somatorio + (numero * j);
j--;
}
resto = somatorio % 11;
digito2 = 11 - resto;
if (digito2 > 9) {
digito2 = 0;
}
cpfAux = cpfAux + digito2;
if (cpf != cpfAux) {
return false;
}
else {
return true;
}
}
Notei que neste trecho dentro da função de salvar passa direto:
if(!ValidarCpf.cpf(cpfOriginal)) {
console.log('Passei na validação');
}
o que pode esta ocasionando o problema de não passar pela minha validação? a titulo de informação, Possuo a mascara do cpf que é removida pela função removerMascaras.