Rexact
Cheatsheet

Regex Code personnel estonien (isikukood)

L'isikukood a 11 chiffres : un chiffre de siècle et de sexe (1 à 6), l'année sur 2 chiffres, le mois (01-12), le jour (01-31), un numéro de série (001 à 710 d'après la spécification DG TAXUD) et une clé modulo 11 à deux jeux de poids (1 à 9 puis 1, et 3 à 9 puis 1, 2, 3 si le premier reste vaut 10). Les trois tentatives réelles relues n'ont pas toutes ces bornes : l'une n'accepte que des chiffres sans contrôler mois ni jour, une autre n'est pas ancrée, et une troisième contrôle la série mais accepte « 39913330010 » (mois 13, jour 33). Voici un motif qui borne siècle, mois, jour et série, comparé à ces tentatives. La clé et l'existence du jour (31 février) restent à vérifier par du code.

/^[1-6]\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])(?:00[1-9]|0[1-9]\d|[1-6]\d{2}|70\d|710)\d$/
passe 24/24 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^[1-6]\\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\\d|3[01])(?:00[1-9]|0[1-9]\\d|[1-6]\\d{2}|70\\d|710)\\d$", "");
re.test(input);

Limites

  • Valide la forme (siècle, mois, jour, série) mais PAS la clé modulo 11 : « 37102250383 » passe. Complément : s1 = Σ chiffre[i] × ((i % 9) + 1) pour les 10 premiers chiffres, modulo 11 ; si s1 vaut 10, s2 = Σ chiffre[i] × (((i + 2) % 9) + 1) modulo 11 ; la clé est s % 10.
  • Le jour 31 est accepté pour tous les mois et le 29 février pour toute année : « 59902 31123… » (31 février) passe ; calculez la date à partir du siècle, de l'année, du mois et du jour pour la vérifier.
  • Les chiffres 7 et 8 (siècle 2100, accepté par python-stdnum) sont refusés comme dans la spécification DG TAXUD ; la série est bornée à 001-710 d'après cette spécification, mais d'autres systèmes peuvent émettre au-delà (le code personnel lituanien partage la structure sans cette borne : voir la fiche asmens-kodas-lituanien). Aucune vérification d'existence.
  • Un isikukood est une donnée personnelle : n'utilisez que les exemples du document officiel ou des numéros synthétiques à date de naissance future, comme ceux du corpus.

Pages liées