Rexact
Cheatsheet

Regex Rodné číslo tchèque (numéro de naissance)

Le rodné číslo s'écrit AAMMJJ/NNNN, la barre étant facultative. Selon la loi tchèque n° 133/2000 Sb. (§ 13), il a 10 chiffres et est divisible par 11, le mois étant augmenté de 50 pour les femmes ; les numéros attribués avant le 1er janvier 1954 n'ont que 9 chiffres (série de 3 chiffres) et ne sont pas soumis à la divisibilité par 11 ; lorsque la série du jour est épuisée, le mois est augmenté de 20 pour les hommes et de 70 pour les femmes. La regex borne donc le mois selon la longueur : 01-12 ou 51-62 pour 9 chiffres (année 00-53), 01-12, 21-32, 51-62 ou 71-82 pour 10 chiffres. La divisibilité par 11 des numéros à 10 chiffres est la clé : elle se contrôle en code (voir les limites). Les trois tentatives réelles relues ne bornent ni le mois, ni le jour, ni la longueur selon l'année.

/^(?:(?:[0-4]\d|5[0-3])(?:0[1-9]|1[0-2]|5[1-9]|6[0-2])(?:0[1-9]|[12]\d|3[01])\/?\d{3}|\d{2}(?:0[1-9]|1[0-2]|2[1-9]|3[0-2]|5[1-9]|6[0-2]|7[1-9]|8[0-2])(?:0[1-9]|[12]\d|3[01])\/?\d{4})$/
passe 25/25 cas

Comparatif des patterns existants

Implémentation

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

Limites

  • Valide la forme (longueur selon l'année, mois codés, jour) mais PAS la divisibilité par 11 des numéros à 10 chiffres : « 7103192746 » a la bonne forme et passe. Complément : pour 10 chiffres, valide si Number(BigInt(chaîne sans barre) % 11n) === 0.
  • Le jour 31 est accepté pour tous les mois (« 990431123… » = 31 avril passe) et la date n'est pas confrontée à aujourd'hui. Pour 10 chiffres, l'année 00-26 vaut 2000-2026, 54-99 vaut 1954-1999, mais 27-53 reste ambigu (non attribué dans les faits) : le motif ne le tranche pas.
  • Un 9 chiffres d'année 54 à 99 est refusé (naissance avant 1954 exigée par la loi) ; les numéros slovaques d'avant 1993 reconnus par la loi suivent la même structure. La barre est facultative, les espaces sont rejetés. Un rodné číslo est une donnée personnelle : n'utilisez que des numéros d'exemple ou synthétiques à jour impossible.

Pages liées