RSS

  • YouTube
  • LinkedIn
  • Google

CPF-Validierungscode für Javascript

O código abaixo é de uma função em Javascript otimizada para ter o menor numero de Zyklomatische Komplexität Zeilen, die ich basierend auf der Erklärung im Artikel erhalten habe Brasilianische CPF-Validierungsmethode - Individuelle Registrierung. Es hat eine leichte Änderung zum Zeitpunkt der Berechnung des zweiten digitalisierten Testers. Anstatt mit der zweiten Ziffer zu beginnen, Der Code beginnt mit dem ersten und verwendet den Wert 11 als Multiplikator. Eine weitere bemerkenswerte Änderung besteht darin, dass wir nicht vergleichen müssen, um zu wissen, ob wir uns in der neunten und decimo Ziffer befinden., Ich weise dem letzten Element den Wert Null zu (Index 10) um einen weiteren Vergleich zu reduzieren.

Der verwendete Algorithmus ist der 1 erklärt im Artikel und es gibt einen kleinen Trick, um zu vermeiden, mit dem Rest gleich zu vergleichen 10 die das Modul machen soll 10 des Restes.

   // Codigo que valida um CPF informado quanto a validade de seus dígitos verificadores.

const validarCpf = (cpf) => {
  if (cpf.length !== 11) { // Supõe-se já vir filtrado o valor
    return false;
  }
  let elementos = cpf.split(''); // convertendo a string em array
  elementos[10] = 0; // Forçando ao valor da ultima multiplicacao ser zero
  let somaA = 0;
  let somaB = 0;

  elementos.reduce(function(i, valor, indice) {
    let multiplicador = 11 - indice;
    somaB += (valor * multiplicador);
    somaA += (valor * (multiplicador > 2 ? multiplicador - 1 : 0));
  }, somaA);
  let moduloA = ((somaA * 10) % 11) % 10;
  let moduloB = ((somaB * 10) % 11) % 10;
  return cpf.replace(/\d{9}(\d{2})$/g, '$1') == ("" + moduloA + moduloB);
}

Sie können diesen Code testen Hier.

Kommentar (1)

Hinterlasse eine Antwort

Ihre e-Mail-Adresse wird nicht veröffentlicht.

Diese Seite benutzt Akismet, Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet wird.