Validador de CPF

Pessoal, tudo bem com vocês? Eu fiz o desafio prático de JS, mas todos os CPF que eu coloco dão como inválidos. Já revisei o código mas não achei o erro. Alguém pode dar um help?

O código ficou assim:

function validaCPF(cpf) {

if (cpf.length != 11) {

return false

} else {

var numeros = cpf.substring(0, 9)

var digitos = cpf.substring(9)

var soma = 0

for (var i = 10; i > 10; i--) {

  soma += numeros.charAt(10 - i) * i

}

var resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11)

if (resultado != digitos.charAt(0)) {

  return false

}

soma = 0

numeros = cpf.substring(0, 10)

for (var k = 11; k > 1; k--) {

  soma += numeros.charAt(11 - k) * k

}

resultado = resultado % 11 < 2 ? 0 : 11 - (resultado % 11)

if (resultado != digitos.charAt(1)) {

  return false

}

return true

}

}

function validacao() {

document.getElementById(‘success’).style.display = ‘none’

document.getElementById(‘error’).style.display = ‘none’

var cpf = document.getElementById(‘cpf_digitado’).value

var resultadoValidacao = validaCPF(cpf)

if (resultadoValidacao) {

document.getElementById('success').style.display = 'block'

} else {

document.getElementById('error').style.display = 'block'

}

}

1 Like

No primeiro for o seu código está for (var i = 10; i > 10; i- -) , o código do professor é i > 1 porque você está descrescendo o valor do contador.
Tenta fazer essa alteração e rodar.

1 Like

Rapaz colega, eu fiz essa alteração e não teve alteração. Continua dando como inválidos :smiling_face_with_tear:

Nessa parte não deveria ser:
resultado = soma % 11 < 2 ? 0 : 11 - (soma % 11) ?

a variável resultado foi declarada aqui e recebeu o valor desse ternário aí.
então quando tu usa ela mais abaixo, acredito que ela tá recebendo o valor que tava armazenado nessa linha que ela foi declarada.

3 Likes

Era isso mesmo colega! Uma desatenção. kkkkkk Valeuu
:+1: :+1: :+1:

2 Likes

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.