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
| Source | pattern | Score on the corpus | ReDoS |
|---|---|---|---|
| @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 / 29 | safe |
| 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 / 29 | safe |
| 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 / 29 | safe |
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
- Belgian licence plate
- Brazilian licence plate
- Czech licence plate
- Dutch licence plate (kenteken)
- German licence plate
- Italian licence plate
- Polish licence plate
- Portuguese licence plate
- SIV license plate
- Spanish licence plate (current format)
- Swedish licence plate
- UK vehicle registration (current format)
- All licence plates by country