Regex plaque d'immatriculation SIV
Un développeur avait une regex PCRE qui fonctionnait, mais qui utilisait une syntaxe conditionnelle absente de JavaScript — impossible à faire compiler telle quelle. Les deux réponses obtenues sur Stack Overflow ont chacune leur propre défaut : l'une oublie d'exclure la combinaison « WW » sur le second groupe de lettres. Voici un motif qui corrige ce point précis, comparé aux 3 tentatives réelles.
/^(?!SS|WW)[A-HJ-NP-TV-Z]{2}[- ]?\d{3}[- ]?(?!SS|WW)[A-HJ-NP-TV-Z]{2}$/ipasse 20/20 cas
Comparatif des patterns existants
| Source | pattern | Score sur le corpus | ReDoS |
|---|---|---|---|
| Stack Overflow — regex PCRE d'origine de l'auteur, syntaxe conditionnelle absente de JS | ^(?(?!ss|ww)[a-hj-np-tv-z]{2})(?:\s|-)?[0-9]{3}(?:\s|-)?(?(?!ss)[a-hj-np-tv-z]{2})$ | ne compile pas | — |
| Stack Overflow — réponse de VisioN, 3 votes, « WW » non exclu sur le second groupe | ^(?!ss|ww)[a-hj-np-tv-z]{2}[ -]?[0-9]{3}[ -]?(?!ss)[a-hj-np-tv-z]{2}$ | 19 / 20 | sûr |
| Stack Overflow — réponse de Qwertiy, approche différente (lettres génériques + exclusion par lookahead) | ^(?!ss|ww|.[iou]|[iou].)[a-z]{2}[-\s]?\d{3}[-\s]?(?!ss|ww|.[iou]|[iou].)[a-z]{2}$ | 20 / 20 | sûr |
Implémentation
const re = new RegExp("^(?!SS|WW)[A-HJ-NP-TV-Z]{2}[- ]?\\d{3}[- ]?(?!SS|WW)[A-HJ-NP-TV-Z]{2}$", "i");
re.test(input);Limites
- Ne couvre que le format SIV (en vigueur depuis 2009) : les plaques FNI antérieures (ex. « 1234 AB 56 », avec le numéro de département) restent légalement valides sur les véhicules non ré-immatriculés et suivent une structure entièrement différente.
- Ne vérifie plus aucun département : depuis 2009, le numéro SIV lui-même ne code plus la région, contrairement à l'ancien format — l'autocollant régional visible sur la plaque est un choix esthétique du propriétaire, pas une donnée du numéro.
- Les combinaisons « SS » et « WW » sont exclues par convention administrative actuelle : une regex figée ne s'adapte pas automatiquement si cette règle change à l'avenir.
- Une plaque syntaxiquement valide n'est pas forcément une plaque réellement attribuée par l'ANTS : la forme ne prouve pas l'existence ni la conformité au fichier des immatriculations.
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 italienne
- plaque d'immatriculation néerlandaise (kenteken)
- plaque d'immatriculation polonaise
- plaque d'immatriculation portugaise
- Toutes les plaques d’immatriculation par pays