Regex pour code postal UK

Utilisez /^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i pour vérifier qu’une chaîne entière est un code postal UK valide. Chaque exemple ci-dessous est testé avec ce motif, et vous pouvez l’ouvrir dans le Testeur de regex avec les exemples préchargés.

Mis à jour le

/^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i
Ouvrir dans le Testeur de regex
SaisieRésultat
SW1A 1AA✓ Correspondance
M1 1AE✓ Correspondance
B33 8TH✓ Correspondance
cr2 6xh✓ Correspondance
12345✗ Aucune correspondance
SW1A1A✗ Aucune correspondance
SW1A 1A1✗ Aucune correspondance

Fonctionnement du motif

PartieSignification
[A-Z]{1,2}Zone postale : une ou deux lettres
\d[A-Z\d]?District : un chiffre, éventuellement suivi d’une lettre ou d’un chiffre
?Espace facultatif
\d[A-Z]{2}Code intérieur : un chiffre et deux lettres
i flagInsensible à la casse

Exemples de code

JavaScript

const re = /^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}', value, re.I))

PHP

preg_match('/^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i', $value) === 1;

Remarques et limites

Cela vérifie la forme d’un code postal, et non son existence. Normalisez-le en majuscules avec une seule espace avant les trois derniers caractères lorsque vous le stockez.

Questions fréquentes

Quelle est la regex pour un code postal UK ?
/^[A-Z]{1,2}\d[A-Z\d]? ?\d[A-Z]{2}$/i — elle correspond à la chaîne entière. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : SW1A 1AA, M1 1AE, B33 8TH, cr2 6xh. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le Testeur de regex » : le motif, les indicateurs et le texte d’exemple se chargent automatiquement, et les correspondances s’affichent en surbrillance pendant que vous modifiez.