isValidCPF static method
Implementation
static bool isValidCPF(String cpf) {
// Remove caracteres especiais
cpf = cpf.replaceAll(RegExp(r'[^0-9]'), '');
// Verifica se o CPF tem 11 dígitos e não é uma sequência de números iguais
if (cpf.length != 11 || RegExp(r'^(\d)\1*$').hasMatch(cpf)) {
return false;
}
// Calcula o primeiro dígito verificador
int sum = 0;
for (int i = 0; i < 9; i++) {
sum += int.parse(cpf[i]) * (10 - i);
}
int firstCheckDigit = (sum * 10) % 11;
if (firstCheckDigit == 10) firstCheckDigit = 0;
if (firstCheckDigit != int.parse(cpf[9])) {
return false;
}
// Calcula o segundo dígito verificador
sum = 0;
for (int i = 0; i < 10; i++) {
sum += int.parse(cpf[i]) * (11 - i);
}
int secondCheckDigit = (sum * 10) % 11;
if (secondCheckDigit == 10) secondCheckDigit = 0;
if (secondCheckDigit != int.parse(cpf[10])) {
return false;
}
return true;
}