validarCPF static method

bool validarCPF(
  1. dynamic numero
)

Função para validar CPF

Esta função recebe um número de CPF como parâmetro e verifica se ele é válido. O número de CPF pode ser passado como uma string ou um número. Retorna true se o CPF for válido e false caso contrário.

Implementation

static bool validarCPF(dynamic numero) {
  try {
    var text = "$numero".removeAny(["-", "."]);

    if (numero is num) {
      text = numero.floor().toString().padLeft(11, "0");
    }

    if (text.isNotNumber || text.length != 11) {
      return false;
    }

    // Calcula o primeiro dígito verificador do CPF
    int soma = 0;
    for (int i = 0; i < 9; i++) {
      soma += int.parse(text[i]) * (10 - i);
    }
    int primeiroDigito = 11 - (soma % 11);
    if (primeiroDigito >= 10) primeiroDigito = 0;

    if (primeiroDigito != int.parse(text[9])) {
      return false;
    }

    // Calcula o segundo dígito verificador do CPF
    soma = 0;
    for (int i = 0; i < 10; i++) {
      soma += int.parse(text[i]) * (11 - i);
    }
    int segundoDigito = 11 - (soma % 11);
    if (segundoDigito >= 10) segundoDigito = 0;

    return segundoDigito == int.parse(text[10]);
  } catch (e) {
    return false;
  }
}