Vérification de la validité des codes siret et siren (algo. de luhn)

Contenu du snippet

Ce sont deux petites fonctions qui permettent de vérifier la validité des codes SIRET et SIREN des entreprises en utilisant l'algorithme de LUHN.

Source / Exemple :


<script language="javascript">
<!--
  /**

  • @name EstSirenValide
  • @param Le code SIREN dont on veut vérifier la validité.
  • @return Un booléen qui vaut 'true' si le code SIREN passé en
  • paramètre est valide, false sinon.
  • /
function EstSirenValide(siren) { var estValide; if ( (siren.length != 9) || (isNaN(siren)) ) estValide = false; else { // Donc le SIREN est un numérique à 9 chiffres var somme = 0; var tmp; for (var cpt = 0; cpt<siren.length; cpt++) { if ((cpt % 2) == 1) { // Les positions paires : 2ème, 4ème, 6ème et 8ème chiffre tmp = siren.charAt(cpt) * 2; // On le multiplie par 2 if (tmp > 9) tmp -= 9; // Si le résultat est supérieur à 9, on lui soustrait 9 } else tmp = siren.charAt(cpt); somme += parseInt(tmp); } if ((somme % 10) == 0) estValide = true; // Si la somme est un multiple de 10 alors le SIREN est valide else estValide = false; } return estValide; } /**
  • @name EstSiretValide
  • @param Le code SIRET dont on veut vérifier la validité.
  • @return Un booléen qui vaut 'true' si le code SIRET passé en
  • paramètre est valide, false sinon.
  • /
function EstSiretValide(siret) { var estValide; if ( (siret.length != 14) || (isNaN(siret)) ) estValide = false; else { // Donc le SIRET est un numérique à 14 chiffres // Les 9 premiers chiffres sont ceux du SIREN (ou RCS), les 4 suivants // correspondent au numéro d'établissement // et enfin le dernier chiffre est une clef de LUHN. var somme = 0; var tmp; for (var cpt = 0; cpt<siret.length; cpt++) { if ((cpt % 2) == 0) { // Les positions impaires : 1er, 3è, 5è, etc... tmp = siret.charAt(cpt) * 2; // On le multiplie par 2 if (tmp > 9) tmp -= 9; // Si le résultat est supérieur à 9, on lui soustrait 9 } else tmp = siret.charAt(cpt); somme += parseInt(tmp); } if ((somme % 10) == 0) estValide = true; // Si la somme est un multiple de 10 alors le SIRET est valide else estValide = false; } return estValide; } --> </script>

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.