Rexact
Cheatsheet

Regex Croatian OIB (personal identification number)

The OIB has 11 digits: 10 random digits carrying no personal information, and an 11th check digit computed per ISO 7064 modulo 11,10 (DG TAXUD specification). The format carries no date or structure, so a regex can only validate length and characters. The key is expressed in code: x = 10, then for each digit d, y = (d + x) % 10 (0 becomes 10) and x = 2y % 11; the key is 11 − x, brought to 0 if 10. The real attempts I read are all short: two anchor, one is an unanchored detector, and one requires the 'HR' prefix of the VAT form, which rejects a bare OIB.

/^\d{11}$/
passes 22/22 cases

Comparison of existing patterns

Implementation

const re = new RegExp("^\\d{11}$", "");
re.test(input);

Limits

  • Valide seulement la FORME : 11 chiffres. La clé ISO 7064 modulo 11,10 n'est pas vérifiée : « 94577403195 » passe. Utilisez le contrôle de code décrit dans l'introduction.
  • Le préfixe « HR » de l'OIB utilisé comme numéro de TVA (« HR94577403194 ») est rejeté : retirez-le avant de valider.
  • Le format ne contient aucune structure interne vérifiable par regex ; ce motif ne distingue donc un OIB que d'une chaîne de longueur ou de caractères différents. Aucune vérification d'attribution ; n'utilisez en test que des numéros d'exemple ou synthétiques.

Related pages