Rexact
Cheatsheet

Regex plaque d'immatriculation portugaise

Le Portugal a eu quatre formats de plaque : AA-00-00 (jusqu'en 1992), 00-00-AA, 00-AA-00 puis, depuis mars 2020, AA-00-AA, imprimé sans tirets. Une faute de frappe dans validator.js, bibliothèque de 23 000 étoiles, a transformé une liste de séparateurs en plage de caractères : « [ -·] » va de l'espace au point médian et contient chiffres, lettres majuscules, « ! » et « @ ». Résultat testé en version 13.15.35 : « AB51234 » et « 12!AB@34 » sont acceptées comme plaques portugaises. Les deux autres tentatives réelles restent bloquées dans une époque : l'une ne connaît que AA-00-AA, l'autre que les trois anciens formats avec tirets. Voici un motif aux quatre formats, comparé à ces trois tentatives.

/^(?:[A-Z]{2}([- ]?)[0-9]{2}\1[0-9]{2}|[0-9]{2}([- ]?)[A-Z]{2}\2[0-9]{2}|[0-9]{2}([- ]?)[0-9]{2}\3[A-Z]{2}|[A-Z]{2}([- ]?)[0-9]{2}\4[A-Z]{2})$/
passe 26/26 cas

Comparatif des patterns existants

Implémentation

const re = new RegExp("^(?:[A-Z]{2}([- ]?)[0-9]{2}\\1[0-9]{2}|[0-9]{2}([- ]?)[A-Z]{2}\\2[0-9]{2}|[0-9]{2}([- ]?)[0-9]{2}\\3[A-Z]{2}|[A-Z]{2}([- ]?)[0-9]{2}\\4[A-Z]{2})$", "");
re.test(input);

Limites

  • Valide seulement la FORME (quatre dispositions de deux lettres et de quatre chiffres) : ne vérifie pas que la plaque est attribuée par l'IMT, ni la cohérence de l'époque (« 99-ZZ-99 » est la dernière plaque de la série 00-AA-00 d'après Wikipédia). Les lettres de chaque disposition ne sont pas bornées : « KW », « YZ » (K, W et Y n'étaient pas utilisées avant 2020) passent.
  • Le motif accepte le séparateur tiret, espace ou aucun, mais le même partout dans une plaque : « AB-12 CD » (séparateurs mélangés) est rejeté. Les plaques AA-00-AA sont imprimées sans tirets d'après Wikipédia : normalisez-les avant stockage.
  • Les dates des formats viennent en partie de Wikipédia (source de dernier recours) : la page de l'IMT consultée ne les cite pas toutes. Les formats spéciaux (plaques d'historique, de remorque, de diplomate) ne sont pas couverts.
  • Majuscules ASCII seulement : « ab-12-cd » est rejeté. Normalisez la casse avant validation si vos utilisateurs saisissent en minuscules.

Plaques d’immatriculation d’autres pays

Pages liées