CNH
Valide CNH e gere números de teste com JavaScript e TypeScript.
Use o validador de CNH para conferir os dois dígitos verificadores da Carteira Nacional de Habilitação, o gerador automático para criar exemplos em testes, e veja a implementação completa em JavaScript, TypeScript e Node.js com a validation-br. A CNH é o documento que autoriza alguém a dirigir veículos no Brasil, emitido pelo DETRAN — o número de registro é único por condutor. É exigido em locadoras de veículos, apps de transporte e qualquer cadastro que precise confirmar que a pessoa está habilitada a dirigir.
Exemplos (API)
import { CNH } from 'validation-br/cnh';
// Criar e validar (lança se inválido)
const cnh = new CNH('624729276-37');
cnh.value; // -> '62472927637'
cnh.toString(); // -> '62472927637'
cnh.mask(); // -> '624729276-37'
// Gerar uma CNH de exemplo válida
const exemplo = CNH.fake();
exemplo.toString();
// Calcular checksum a partir dos 9 primeiros dígitos
CNH.checksum('624729276'); // -> '37'Como o cálculo é feito
A CNH tem 11 caracteres: os 9 primeiros formam o número sequencial e os 2 últimos são os dígitos verificadores (DV1 e DV2), calculados a partir dos anteriores.
A conta é parecida com a do CPF e do CNPJ (soma ponderada, módulo 11), mas com duas diferenças importantes: no DV1 os pesos são crescentes (2 a 10), ao contrário do CPF/CNPJ, que usam pesos decrescentes; e no DV2, o peso do dígito DV1 (que é 2) entra fora de ordem, no final da lista de pesos (3, 4, 5, 6, 7, 8, 9, 10, 11, 2), em vez de seguir a sequência crescente.
Se o resto da divisão por 11 for 10, o dígito verificador é considerado
0.

