Regexp d'un SIRET faisable ?
Salut à tous !
je me demandais si l'algorithme de vérification d'un numéro de SIRET était faisable avec une regexp ?
voici l'animal :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| # 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;
# } |
<!-- Vous l'aurez reconnu, c'est du javascript :mouarf: mais peu importe le langage c'est l'expression régulière qui m'interesse... -->
qu'en pensez vous ?
Merci