Regex Czech licence plate
Decree 343/2014 Sb. sets standard plates at 5 to 8 characters (Latin capitals and digits, at least one letter and one digit, § 24), with the letters placed after the region code drawn from A B C D E F H I J K L M N P R S T U V X Y Z (§ 27 para. 3): G, O, Q and W are excluded. The region letter comes from § 28 (A Prague, S Central Bohemia, B South Moravia...). A common car plate reads digit, region letter, digit or letter, space, four digits ('1A2 3456'). Real attempts ignore the region letter: validator.js accepts 'A-1-2-3-4-5' and 'AAAAAAAA' (5 to 8 arbitrary characters of the alphabet), and CodeCornTech's accepts any two letters in 2nd and 3rd position ('1GQ 3456') while rejecting '1A2 3456'. Here's a pattern applying the decree's alphabet and the region letter.
/^[0-9][ABCEHJKLMPSTUZ][0-9ABCDEFHIJKLMNPRSTUVXYZ] ?[0-9]{4}$/Comparison of existing patterns
| Source | pattern | Score on the corpus | ReDoS |
|---|---|---|---|
| validator.js (cs-CZ) — « ((lettre|chiffre)-?){5,8} » : accepte n'importe quel ordre, « A-1-2-3-4-5 », « AAAAAAAA » et « 1A23456 » passent, la lettre de région n'est pas contrôlée ; l'espace de « 1A2 3456 » est rejetée, seul le tiret est permis | ^(([ABCDEFHIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$ | 16 / 32 | safe |
| @randock/license-plate-validator (cz, deux regex réunies par | ; l'entrée est d'abord normalisée) — la 2e, avec lookahead, tolère 7 à 8 caractères mêlés (« ABCDEFH1 ») sans région ni disposition ; test brut : l'espace de « 1A2 3456 » est rejetée, « 1A23456 » passe | ^([A-Z0-9]{2,3})([0-9]{3,4})$|^((?=.*\d)[ABCDEFHI-NPR-VX-Z0-9]{7,8})$ | 17 / 32 | safe |
| CodeCornTech (euro-plate-validator) — un chiffre, DEUX lettres quelconques (« 1GQ 3456 », « 1OW 3456 » passent), puis 4 chiffres ; rejette « 1A2 3456 » (3e caractère chiffre), forme courante | ^\d[A-Z]{2}\s?\d{4}$ | 16 / 32 | safe |
Implementation
const re = new RegExp("^[0-9][ABCEHJKLMPSTUZ][0-9ABCDEFHIJKLMNPRSTUVXYZ] ?[0-9]{4}$", "");
re.test(input);Limits
- Valide seulement la FORME : ne vérifie pas que la plaque est attribuée. La disposition « chiffre, région, chiffre ou lettre, 4 chiffres » est la forme courante de la plaque de voiture à 7 caractères, pas une règle du décret, qui ne fixe que 5 à 8 caractères, l'alphabet et les lettres de région.
- Seule la lettre de région du § 28 est acceptée en 2e position (A S U L K H E P C J B M T Z) ; D, F, G, I, N, R, V, X, Y (permises ailleurs par le § 27) y sont rejetées. Le premier chiffre accepté va de 0 à 9 : je n'ai pas trouvé de texte qui l'encadre.
- Ne couvre pas les plaques à 8 caractères, les plaques personnalisées « na přání » (lettres et chiffres libres, § 25), historiques (« 01V… »), sportives, électriques (« EL… »), diplomatiques (« CD 12345 »), d'essai ou de moto.
- Une seule espace, facultative, entre le 3e et le 4e caractère ; le tiret est rejeté (le § 27 al. 2 interdit toute ponctuation). Les majuscules sont obligatoires.
Licence plates for other countries
- Austrian licence plate
- Belgian licence plate
- Brazilian 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