Skip to content

Instantly share code, notes, and snippets.

@klaytonfaria
Last active September 15, 2017 23:07
Show Gist options
  • Save klaytonfaria/df5f937f1bf6f96f2fa9bafb8c2ac142 to your computer and use it in GitHub Desktop.
Save klaytonfaria/df5f937f1bf6f96f2fa9bafb8c2ac142 to your computer and use it in GitHub Desktop.
Validador de RENAVAM
function isRenavam(renavam = '') {
// Converte renavam em string e completa com zeros à esquerda, para que fique com 11 dígitos
renavam = (Array(11).join("0") + String(parseInt(renavam, 10))).slice(-11);
// Soma dos produtos dos 10 primeiros dígitos do renavam com os da sequência de multiplicadores (peso com base modulo11)
const CONTROL = '3298765432'.split('');
const renavamTen = renavam.substring(0, 10).split('');
let sum = 0;
CONTROL.map((item, i) => sum += (item * renavamTen[i]));
// Calcula a diferença entre 11 e o resto da divisão da soma por 11
let digit = 11 - (sum % 11);
// Caso o digito seja maior que 9, passa a ser 0
digit = digit > 9 ? 0 : digit;
return parseInt(digit, 10) === parseInt(renavam.split('')[10], 10);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment