Regex plaque d'immatriculation suédoise
La plaque suédoise standard comporte trois lettres puis trois chiffres (« ABC 123 »), ou depuis 2019 trois lettres, deux chiffres et une lettre (« ABC 12A »). Transportstyrelsen précise que les lettres I, Q, V, Å, Ä et Ö ne sont pas utilisées, et que le O n'est pas utilisé comme dernier caractère des nouveaux numéros, car il se confond avec le zéro. Les plaques personnalisées, de 2 à 7 caractères, ne peuvent pas avoir la forme d'un numéro standard. Les tentatives réelles ne tiennent pas cette liste : un paquet PHP accepte n'importe quel caractère « \w » (donc « IBC 123 » et « ABC 12_ »), celui de validator.js exclut bien I, Q, V mais refuse « ABC 120 » (dernier chiffre limité à 1-9) et accepte « HELLO ». Voici un motif strict sur les plaques standard, comparé à ces tentatives.
/^[A-HJ-PR-UW-Z]{3} ?(?:[0-9]{3}|[0-9]{2}[A-HJ-NPR-UW-Z])$/Comparatif des patterns existants
| Source | pattern | Score sur le corpus | ReDoS |
|---|---|---|---|
| validator.js (sv-SE, deux branches) — la 1re exclut bien I, Q, V mais accepte O en dernière position et refuse « ABC 120 » (dernier caractère [A-Z1-9], pas 0) ; la 2e accepte toute chaîne de 2 à 7 lettres ou espaces (« HELLO », « ABC », « Å Ä Ö ») | ^[A-HJ-PR-UW-Z]{3} ?[\d]{2}[A-HJ-PR-UW-Z1-9]$|(^[A-ZÅÄÖ ]{2,7}$) | 25 / 29 | sûr |
| inteleon/licenseplate (PHP, plaque normale ; la bibliothèque y ajoute une branche personnalisée) — « \w » : accepte I, Q, V, chiffres et « _ » partout (« 123 456 », « IBC 123 », « ABC 12_ ») | ^((\w{3}\s*\d{3})|(\w{3}\s*\d{2}\w))$ | 20 / 29 | sûr |
| CodeCornTech (euro-plate-validator) — 3 lettres quelconques et dernier caractère alphanumérique : « IBC 123 », « ABC 12O », « ABC 12V » passent | ^[A-Z]{3}\s?\d{2}[A-Z0-9]$ | 22 / 29 | sûr |
Implémentation
const re = new RegExp("^[A-HJ-PR-UW-Z]{3} ?(?:[0-9]{3}|[0-9]{2}[A-HJ-NPR-UW-Z])$", "");
re.test(input);Limites
- Valide seulement la FORME : ne vérifie pas que le numéro est attribué. « AAA 000 » a la bonne forme, sans que la page de Transportstyrelsen dise s'il est émis ; aucune plage n'est exclue ici.
- Ne couvre que les plaques standard. Les plaques personnalisées (2 à 7 caractères, toutes lettres permises, sans la forme d'un numéro standard), les plaques de véhicule diplomatique (« deux lettres + trois chiffres + une lettre »), de moto, de remorque ou d'essai ont d'autres formes et sont rejetées.
- L'exclusion du O comme dernier caractère vient de la page de lancement du nouveau format ; je n'ai pas lu d'autre texte (règlement TSFS) qui liste d'éventuelles restrictions plus fines (par exemple des combinaisons de lettres réservées).
- Une seule espace facultative entre les lettres et les chiffres ; majuscules obligatoires. Normalisez la saisie avant validation.
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 tchèque
- Toutes les plaques d’immatriculation par pays