klaytonfaria
9/15/2017 - 10:27 PM

Validador de RENAVAM

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
  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);
}