validarCNH static method
- dynamic numero
Valida o número da Carteira Nacional de Habilitação (CNH).
Essa função verifica se o número da CNH é válido, seguindo as seguintes regras:
- O número deve ter 11 dígitos.
- O número não pode ser composto apenas por um único dígito repetido 11 vezes.
Parâmetros:
numero
: O número da CNH a ser validado.
Retorna:
true
se o número da CNH for válido.false
caso contrário.
Implementation
static bool validarCNH(dynamic numero) {
var cnh = "$numero";
if (cnh.isNotBlank && cnh.length == 11 && cnh != '1' * 11) {
int dsc = 0;
int v = 0;
int i = 0;
int j = 9;
while (i < 9) {
v += int.parse(cnh[i]) * j;
i += 1;
j -= 1;
}
int vl1 = v % 11;
if (vl1 >= 10) {
vl1 = 0;
dsc = 2;
}
v = 0;
i = 0;
j = 1;
while (i < 9) {
v += int.parse(cnh[i]) * j;
i += 1;
j += 1;
}
int x = v % 11;
int vl2 = x >= 10 ? 0 : x - dsc;
return '$vl1$vl2' == cnh.substring(cnh.length - 2);
}
return false;
}