Code de validation CPF pour Javascript

O que ando ainda nesta caminhada sobre un Terra

Code de validation CPF pour Javascript

Le code ci-dessous provient d’une fonction Javascript optimisée pour avoir le moins de Complexité cyclomatique Lignes que j’ai obtenues sur la base de l’explication dans l’article Algorithme brésilien de validation CPF – Registre des contribuables individuels. Il y a un léger changement dans le moment du calcul du deuxième vérificateur numérisé. Au lieu de commencer par le deuxième chiffre, Le code commence par le premier et utilise la valeur 11 comme multiplicateur. Un autre changement visible est que pour éviter d’avoir à comparer pour savoir si nous sommes dans les neuvième et dixième chiffres, J’assigne la valeur zéro au dernier élément (index 10) Pour affiner une autre comparaison.

L’algorithme utilisé est l’algorithme 1 expliqué dans l’article et il y a une petite astuce pour éviter de le comparer avec le reste de la même 10 qui est de faire en sorte que le module 10 du reste.

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

Vous pouvez tester ce code Ici.

Une réponse

Laisser une réponse

Votre adresse email ne sera pas publié. Les champs obligatoires sont marqués *

Ce site utilise Akismet pour réduire le spam. Apprenez comment vos données de commentaire sont transformées.