Regex Swedish licence plate
The standard Swedish plate has three letters then three digits ('ABC 123'), or since 2019 three letters, two digits and a letter ('ABC 12A'). Transportstyrelsen states that the letters I, Q, V, Å, Ä and Ö are not used, and that O is not used as the last character of the new numbers, being easily mistaken for zero. Personalised plates, 2 to 7 characters, may not look like a standard number. Real attempts do not follow that list: a PHP package accepts any '\w' character (so 'IBC 123' and 'ABC 12_'), and validator.js's does exclude I, Q, V but rejects 'ABC 120' (last digit limited to 1-9) and accepts 'HELLO'. Here's a pattern strict on standard plates, compared against those attempts.
/^[A-HJ-PR-UW-Z]{3} ?(?:[0-9]{3}|[0-9]{2}[A-HJ-NPR-UW-Z])$/passes 29/29 cases
Comparison of existing patterns
| Source | pattern | Score on the 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 | safe |
| 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 | safe |
| 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 | safe |
Implementation
const re = new RegExp("^[A-HJ-PR-UW-Z]{3} ?(?:[0-9]{3}|[0-9]{2}[A-HJ-NPR-UW-Z])$", "");
re.test(input);Limits
- 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.
Licence plates for other countries
- Austrian licence plate
- 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)
- UK vehicle registration (current format)
- All licence plates by country