1
resposta

Meu cpf não é validado como TRUE

Boa tarde! Meu cpf está sendo recusado pelo código, o que está acontecendo?

CPF 34990899806

function verificaCPFInvalidos(cpf) {
    const cpfsInvalidos = [
      "11111111111",
      "22222222222",
      "33333333333",
      "44444444444",
      "55555555555",
      "66666666666",
      "77777777777",
      "88888888888",
      "99999999999",
      "00000000000"
    ];

    return cpfsInvalidos.indexOf(cpf) === -1;
  }

  function verificaPrimeiroDigito(cpf) {
    const peso = 11;
    const totalDeDigitosPrimeiraParte = 9;
    const digitoDeVerificacao = parseInt(cpf.substring(9, 10));
    return verificaDigito(
      cpf,
      totalDeDigitosPrimeiraParte,
      peso,
      digitoDeVerificacao
    );
  }

  function verificaSegundoDigito(cpf) {
    const peso = 12;
    const totalDeDigitosSegundaParte = 10;
    const digitoDeVerificacao = parseInt(cpf.substring(10, 11));
    return verificaDigito(
      cpf,
      totalDeDigitosSegundaParte,
      peso,
      digitoDeVerificacao
    );
  }

  function verificaDigito(cpf, totalDeDigitos, peso, digitoDeVerificacao) {
    const soma = somaNumerosCPF(cpf, totalDeDigitos, peso);
    const resto = (soma * 10) % 11;
    return resto === digitoDeVerificacao;
  }

  function somaNumerosCPF(cpf, totalDeDigitos, peso) {
    let soma = 0;
    for (let indice = 1; indice <= totalDeDigitos; indice++) {
      soma += parseInt(cpf.substring(indice - 1, indice)) * (peso - indice);
    }
    return soma;
  }

  function validaCPF(cpf) {
    return (
      verificaPrimeiroDigito(cpf) &&
      verificaSegundoDigito(cpf) &&
      verificaCPFInvalidos(cpf)
    );
  }
1 resposta

Oi, Fernando, tudo bem?

Alguns cpfs entraram numa exceção. O aluno Denis, sugeriu uma posposta para adicionar ao código e esses cpfs, que estão como inválidos, agora, fiquem como válidos: https://cursos.alura.com.br/forum/topico-faltou-implementar-uma-logica-127996