Regex plaque d'immatriculation tchèque
Le décret 343/2014 Sb. fixe pour les plaques standard 5 à 8 caractères (majuscules latines et chiffres, au moins une lettre et un chiffre, § 24), avec pour les lettres placées après le code de région la liste A B C D E F H I J K L M N P R S T U V X Y Z (§ 27 al. 3) : G, O, Q et W sont exclus. La lettre de région vient du § 28 (A Prague, S Bohême centrale, B Moravie du Sud…). Une plaque de voiture courante s'écrit chiffre, lettre de région, chiffre ou lettre, espace, quatre chiffres (« 1A2 3456 »). Les tentatives réelles ignorent la lettre de région : validator.js accepte « A-1-2-3-4-5 » et « AAAAAAAA » (5 à 8 caractères quelconques de l'alphabet), et celle de CodeCornTech accepte deux lettres quelconques en 2e et 3e position (« 1GQ 3456 ») tout en rejetant « 1A2 3456 ». Voici un motif qui applique l'alphabet du décret et la lettre de région.
/^[0-9][ABCEHJKLMPSTUZ][0-9ABCDEFHIJKLMNPRSTUVXYZ] ?[0-9]{4}$/Comparatif des patterns existants
| Source | pattern | Score sur le 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 | sûr |
| @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 | sûr |
| 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 | sûr |
Implémentation
const re = new RegExp("^[0-9][ABCEHJKLMPSTUZ][0-9ABCDEFHIJKLMNPRSTUVXYZ] ?[0-9]{4}$", "");
re.test(input);Limites
- 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.
Plaques d’immatriculation d’autres pays
- plaque d'immatriculation allemande
- plaque d'immatriculation autrichienne
- plaque d'immatriculation belge
- plaque d'immatriculation brésilienne
- plaque d'immatriculation britannique (format actuel)
- plaque d'immatriculation espagnole (format actuel)
- plaque d'immatriculation italienne
- plaque d'immatriculation néerlandaise (kenteken)
- plaque d'immatriculation polonaise
- plaque d'immatriculation portugaise
- plaque d'immatriculation SIV
- plaque d'immatriculation suédoise
- Toutes les plaques d’immatriculation par pays