Rexact
Cheatsheet

Regex Austrian licence plate

An Austrian plate starts with the code of the registering authority (1 to 3 letters, annex 5d of the KFG-DV regulation) followed by the 'Vormerkzeichen'. § 26 para. 6 of the KFG-DV sets, for the standard plate: 4 to 6 characters in total in practice, a block of digits then a block of 1 to 3 letters ('W 12345 A', 'G 123 AB'), never letters mixed with digits, no leading zero in the digit block, and no letters Q, Ä, Ö, Ü. Personalised plates reverse the order: letters first, digits last ('W AB1'). Real attempts do not know these rules: a Go package accepts 'W 00123 A', and CodeCornTech's accepts 'W 1234 QB'. Here's a pattern applying these rules, compared against those attempts.

/^[A-PR-Z]{1,3}[ -](?:(?=(?:[0-9A-Z] ?){4,6}$)[1-9][0-9]{0,4} ?[A-NPR-Z][A-PR-Z]{0,2}|(?=(?:[0-9A-Z] ?){3,6}$)[A-PR-Z]{1,5} ?[1-9][0-9]{0,4})$/
passes 29/29 cases

Comparison of existing patterns

SourcepatternScore on the corpusReDoS
@randock/license-plate-validator (at, deux regex réunies par | ; l'entrée est d'abord normalisée, sans espace ni tiret) — liste de codes d'autorité (partiellement périmée) ; testé brut, « W 12345 A » est rejeté (séparateurs) alors que « W00123A » (zéro en tête) et « W1234AB » passent^(A|B|E|G|I|K|L|N|O|P|S|T|V|W)(([A-PR-Z]{1,2})([0-9]{3,5})|([0-9]{1,2})([A-PR-Z]{3,5})|([A-PR-Z]{3,5})([0-9]{1,2})|([0-9]{3,5})([A-PR-Z]{1,2}))$|^(AM|BA|BB|BD|BG|BH|BL|BM|BN|BP|BR|BZ|DL|DO|EF|EU|FB|FE|FF|FK|FR|FV|FW|GB|GD|GF|GK|GM|GR|GS|GU|HA|HB|HE|HF|HL|HO|IL|IM|JE|JO|JU|JW|KB|KG|KI|KF|KK|KL|KO|KR|KS|KU|LA|LB|LE|LF|LI|LL|LN|LZ|MA|MD|ME|MI|MT|MU|MZ|ND|NK|OP|OW|PE|PL|PT|RA|RE|RI|RO|SB|SD|SE|SK|SL|SP|SO|SR|ST|SV|SW|SZ|TA|TD|TK|TU|UU|VB|VD|VI|VK|VL|VO|WB|WD|WK|WE|WL|WN|WO|WT|WU|WY|WZ|ZE|ZT|ZW)(([A-PR-Z]{1,2})([0-9]{3,5})|([0-9]{1,2})([A-PR-Z]{3,5})|([A-PR-Z]{3,5})([0-9]{1,2})|([0-9]{3,5})([A-PR-Z]{1,2}))$15 / 29safe
truejacobg/eu-licence-validator (Go) — 1 à 2 lettres, 3 à 5 chiffres, 1 lettre facultative : « W 00123 A » passe ; refuse les codes à 3 lettres (« LIB 123 A ») et les blocs de 1 à 2 lettres finales (« W 1234 AB »)^([A-Z]{1,2})\s?(\d{3,5})\s?([A-Z]?)$15 / 29safe
CodeCornTech (euro-plate-validator) — 1 à 3 lettres, 1 à 4 chiffres, 0 à 2 lettres : accepte « W 0 », « W 1234 QB » (Q interdit) et « LIB 123 A » ; refuse « W 12345 A » (5 chiffres) et toute plaque personnalisée « W AB1 »^[A-Z]{1,3}\s?\d{1,4}\s?[A-Z]{0,2}$17 / 29safe

Implementation

const re = new RegExp("^[A-PR-Z]{1,3}[ -](?:(?=(?:[0-9A-Z] ?){4,6}$)[1-9][0-9]{0,4} ?[A-NPR-Z][A-PR-Z]{0,2}|(?=(?:[0-9A-Z] ?){3,6}$)[A-PR-Z]{1,5} ?[1-9][0-9]{0,4})$", "");
re.test(input);

Limits

  • Valide seulement la FORME : ne contient pas la liste des codes d'autorité (annexe 5d du KFG-DV, qui a changé plusieurs fois, par exemple à la suite de fusions de districts). « XY 1234 A » a la bonne forme sans que « XY » soit un code existant ; seul un tableau de codes, non repris ici, le détecterait.
  • La longueur du § 26 dépend de la plaque (4 à 5 caractères en règle, 5 à 6 dans les capitales de Land et à Vienne, 4 à 6 sur plaque à deux lignes) : le motif accepte 4 à 6 pour la plaque standard et 3 à 6 pour la personnalisée sans distinguer ces cas. Il suit le texte consolidé du RIS lu en octobre 2026 ; une modification ultérieure n'est pas exclue.
  • Le O en tête du bloc de lettres n'est rejeté que sur la plaque standard (Z 5), pas sur la personnalisée. Les plaques d'organes (A, B, BP, FW…), diplomatiques (D, K) et historiques, de moto ou de remorque ont d'autres règles et ne sont pas toutes couvertes.
  • Le code d'autorité est suivi d'un espace ou d'un tiret obligatoire (le blason à l'écrit est remplacé par un tiret, al. 7) ; une espace facultative sépare les deux blocs. Majuscules obligatoires.

Licence plates for other countries

Related pages