Rexact
Cheatsheet

Regex UK vehicle registration (current format)

Since 2001, a British plate is written AB12 CDE: 2 area letters, a 2-digit age identifier, 3 random letters. The DVLA publishes the rules: the age identifier is 02 to 29 (March-August) or 51 to 79 (September-February), never 00, 01 or 30 to 50, and area letters never use I, Q or Z. The three real attempts I read are all '2 letters, 2 digits, 3 letters': 'AB00 CDE', 'AB30 CDE' and 'IA12 ABC' pass everywhere. Here's a pattern bounding the age identifier and the area letters, compared against those attempts.

/^[A-HK-PRSVWY][A-HJ-NPR-Y](?:0[2-9]|[12][0-9]|5[1-9]|[67][0-9]) ?[A-Z]{3}$/
passes 26/26 cases

Comparison of existing patterns

SourcepatternScore on the corpusReDoS
Gist harry-jones (dit tiré du site du DVLA, repris par scrubadub) — branche « Current » : n'importe quelles 2 lettres et 2 chiffres : IA12 ABC, AB00 CDE, AB30 CDE passent ; pas d'espace (« AB12 CDE » est rejeté) ; regex à 8 formats réunis par |(?<Current>^[A-Z]{2}[0-9]{2}[A-Z]{3}$)|(?<Prefix>^[A-Z][0-9]{1,3}[A-Z]{3}$)|(?<Suffix>^[A-Z]{3}[0-9]{1,3}[A-Z]$)|(?<DatelessLongNumberPrefix>^[0-9]{1,4}[A-Z]{1,2}$)|(?<DatelessShortNumberPrefix>^[0-9]{1,3}[A-Z]{1,3}$)|(?<DatelessLongNumberSuffix>^[A-Z]{1,2}[0-9]{1,4}$)|(?<DatelessShortNumberSufix>^[A-Z]{1,3}[0-9]{1,3}$)|(?<DatelessNorthernIreland>^[A-Z]{1,3}[0-9]{1,4}$)19 / 26safe
dossierdata/license-plate (PHP) — même grammaire « XX99 XXX; 2001-now » : tout couple de lettres et tout identifiant à 2 chiffres passent ; l'espace de la plaque officielle est rejeté^[A-Z]{2}[\d]{2}[A-Z]{3}$19 / 26safe
CodeCornTech (euro-plate-validator) — accepte l'espace facultatif, mais mêmes lacunes : IA12 ABC, AZ12 ABC, AB00 CDE, AB30 CDE et AB80 CDE passent^[A-Z]{2}\d{2}\s?[A-Z]{3}$14 / 26safe

Implementation

const re = new RegExp("^[A-HK-PRSVWY][A-HJ-NPR-Y](?:0[2-9]|[12][0-9]|5[1-9]|[67][0-9]) ?[A-Z]{3}$", "");
re.test(input);

Limits

  • Valide seulement la FORME du format courant (depuis 2001) : ne vérifie pas que la plaque est attribuée par le DVLA. Le motif borne la première lettre de zone à la liste d'INF104 et exclut I, Q, Z en deuxième lettre, mais la table complète des zones (qui limite la deuxième lettre selon la première) n'est pas reprise : « AY12 ABC » passe même si cette combinaison n'est pas attribuée.
  • Les formats antérieurs (A123 ABC, ABC 123A, 1234 AB…) et les plaques d'Irlande du Nord (ABZ 1234) définis par le SI 2001/561 ne sont pas couverts : ils sont rejetés par ce motif.
  • Les identifiants d'âge 80 et plus ne sont pas listés par INF104 : ils sont rejetés ici, et il faudra mettre le motif à jour quand le DVLA les émettra. Les identifiants 27 à 29 et 77 à 79 sont listés mais pas encore émis ; ils sont acceptés.
  • Le DVLA ne dit rien des lettres I et Q parmi les 3 lettres aléatoires : le motif accepte n'importe quelle lettre. Majuscules ASCII seulement ; l'espace est facultatif (la plaque officielle l'a).

Licence plates for other countries

Related pages