Regex plaque d'immatriculation italienne
Depuis 1994, une plaque italienne de voiture s'écrit AA 123 AA : 2 lettres, 3 chiffres, 2 lettres. D'après Wikipédia (source de dernier recours : le texte du décret n'a pas pu être consulté), les lettres I, O, Q et U ne sont pas utilisées, pour éviter les confusions avec 1 et 0, et la série EE a été sautée en 2011 (ED 999 ZZ a été suivie de EF 000 AA). Une regex de tutoriel html.it, en Go, n'est pas ancrée : « AA123AAX » passe, et toutes les lettres sont permises. La bibliothèque @randock accepte « AI 123 AA ». Voici un motif qui exclut ces lettres et les séries sautées, comparé à ces trois tentatives.
/^(?!EE|CC|CD)[A-HJ-NPR-TV-Z]{2} ?[0-9]{3} ?[A-HJ-NPR-TV-Z]{2}$/passe 30/30 cas
Comparatif des patterns existants
| Source | pattern | Score sur le corpus | ReDoS |
|---|---|---|---|
| html.it (tutoriel Go sur les expressions régulières) — non ancrée et toutes les lettres : « AA123AAX » passe, ainsi que I, O, Q, U ; ne gère pas les espaces de la plaque officielle (« AA 123 AA » rejeté) | [A-Z]{2}[0-9]{3}[A-Z]{2} | 19 / 30 | sûr |
| @randock/license-plate-validator (npm, l'entrée est d'abord normalisée) — « [A-Z] » partout : « AI 123 AA », « AO 123 AA », « AA 123 AU » et la série EE passent | ^([A-Z]{2})([0-9]{3}[A-Z]{2})$ | 20 / 30 | sûr |
| CodeCornTech (euro-plate-validator) — la meilleure du lot : exclut I, O, Q, U et la série EE ; mais accepte CC et CD, séries jamais attribuées aux voitures | ^(?!EE)[A-HJ-NPR-TV-Z]{2}\s?\d{3}\s?[A-HJ-NPR-TV-Z]{2}$ | 29 / 30 | sûr |
Implémentation
const re = new RegExp("^(?!EE|CC|CD)[A-HJ-NPR-TV-Z]{2} ?[0-9]{3} ?[A-HJ-NPR-TV-Z]{2}$", "");
re.test(input);Limites
- Valide seulement la FORME : ne vérifie pas que la plaque est attribuée par la Motorizzazione. Aucun texte officiel n'a pu être consulté : les règles (lettres exclues, séries sautées) viennent de Wikipédia, source de dernier recours, et de bibliothèques tierces.
- Exclut les séries EE (sautée en 2011) et CC, CD (réservées aux consulaires et diplomatiques) en préfixe. « AA 000 AA », jamais émise (la première plaque est AA 001 AA), passe pourtant.
- Ne couvre que le format de voiture depuis 1994 : les plaques de moto (AA 00000), les anciens formats (province + numéro, 1976-1994) et les plaques spéciales ne sont pas couverts. Les préfixes réservés Z, Y et X (plaques spéciales) sont acceptés comme des lettres ordinaires.
- L'espace entre les groupes est facultative ; la plaque officielle l'a. Majuscules ASCII seulement : « aa 123 aa » est rejeté ; le tiret n'est pas accepté.
Plaques d’immatriculation d’autres pays
- plaque d'immatriculation allemande
- plaque d'immatriculation belge
- plaque d'immatriculation britannique (format actuel)
- plaque d'immatriculation espagnole (format actuel)
- plaque d'immatriculation néerlandaise (kenteken)
- plaque d'immatriculation polonaise
- plaque d'immatriculation portugaise
- plaque d'immatriculation SIV
- Toutes les plaques d’immatriculation par pays