RENAVAM
O número do Registro Nacional de Veículos Automotores.
Validar
- JavaScript, biblioteca
- Python, biblioteca7 casos falham
- Go, biblioteca5 casos falham
- Ruby, biblioteca7 casos falham
- Rust, biblioteca5 casos falham
- .NET, biblioteca5 casos falham
- Erlang, biblioteca7 casos falham
Valida um RENAVAM: o formato antigo (9 dígitos, completado com zeros à esquerda até 11) ou o novo (11 dígitos), com dígito verificador por módulo 11.
- A função ignora espaços, pontos, hífens e barras, sozinhos ou em sequência, então toda forma com pontuação é aceita (
0063988.4962,0063988/4962,00639884-962). Qualquer outro caractere, em particular uma letra ou um sublinhado, torna o valor inválido. Até a 2.4.0 a barra era rejeitada. - Dígito verificador: os dez dígitos da base, lidos da direita para a esquerda, são multiplicados por 2, 3, 4, 5, 6, 7, 8, 9, 2 e 3. O dígito é o resto da divisão por 11 de dez vezes a soma, com resto 10 lido como 0.
- Um valor com todos os dígitos iguais é rejeitado.
- Um número só é lido se for um inteiro seguro não negativo. Número negativo ou fracionário é inválido: a 2.4.0 aceitava
-639884962e63988496.2. Strings e inteiros não negativos dão o mesmo resultado de antes. - A Portaria DENATRAN nº 27/2013 dá 10 dígitos e um dígito verificador "calculado através do módulo 11, peso 9". Ela não escreve os pesos, o tratamento de resto 0, 1 ou 10, nem como um código de 9 dígitos é lido em 11. Essas partes seguem referências da comunidade e a prática de mercado.
- Um número perde os zeros à esquerda, então um RENAVAM de 11 dígitos que começa com
0só é aceito como string:"08794266580"é válido e8794266580não é. - Um valor que não é string nem número retorna
false.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
renavam | string | number | sim |
| retorna | boolean |
Valida um RENAVAM (Registro Nacional de Veículos Automotores). Aceita o formato antigo (9 dígitos) e o formato novo (11 dígitos).
- Espaços, pontos, hífens e barras são ignorados; qualquer outro caractere invalida o valor.
- Um número perde os zeros à esquerda, então um RENAVAM de 11 dígitos que começa com
0só é aceito como string:isValidRenavam('08794266580')étrueeisValidRenavam(8794266580)éfalse. - O dígito verificador é o da Portaria DENATRAN nº 27/2013, art. 1º: "10 dígitos e um dígito verificador, calculado através do módulo 11, peso 9", lido como os pesos 3, 2, 9, 8, 7, 6, 5, 4, 3 e 2. A portaria não escreve os pesos um a um nem diz o que fazer com resto 0, 1 ou 10, o que segue o validation-br e o brutils; completar com zeros um código de 9 dígitos até 11 é prática de mercado.
import { isValidRenavam } from '@brazilian-utils/brazilian-utils';
isValidRenavam('639884962'); // true (9 dígitos, formato antigo)
isValidRenavam('00639884962'); // true (11 dígitos, formato novo)
isValidRenavam('0063988.4962'); // true (o ponto é ignorado)
isValidRenavam('12345678901'); // false (checksum inválido)
isValidRenavam('00000000000'); // false (dígitos repetidos)
isValidRenavam('ab00639884962'); // false (letras são rejeitadas)Fonte: Portaria DENATRAN nº 27/2013.
Código: brazilian-utils/javascriptCasos de teste compartilhados (39) e o resultado em cada biblioteca renavam.isValid
Gerar
- JavaScript, biblioteca
- Python, biblioteca
- Go, biblioteca
- Ruby, biblioteca
- Rust, biblioteca
- .NET, biblioteca
- Erlang, biblioteca
Gera um RENAVAM aleatório e válido no formato de 11 dígitos: 10 dígitos base mais o dígito verificador.
| Parâmetro | Tipo | Obrigatório |
|---|---|---|
| retorna | string |
Gera um RENAVAM válido aleatório na forma de 11 dígitos: dez dígitos de base mais o dígito verificador.
import { generateRenavam } from '@brazilian-utils/brazilian-utils';
generateRenavam(); // '12345678900'Casos de teste compartilhados (1) e o resultado em cada biblioteca renavam.generate
Fontes oficiais
Veja também Placa de veículo, Chassi (VIN)
Atualizado em
