Expression régulière pour valider un code postal

L’expression régulière suivante permet de tester un code postal français de la forme : « DDDDD« . Tous les chiffres sont utilisés. Les deux premiers chiffres indiquent le département, et vont de 01 à 98. Le code suivant est l’expression régulière d’une adresse postale pour tester si le format est correct.

expression régulière code postal
/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/

Je vous propose également différentes expressions régulières de codes postaux en fonction des pays, vous aurez juste à remplacer l’expression par celle que vous avez besoin.

Codes postaux de la forme : ‘DDDD‘, le premier chiffre représentant la province, les autres les secteurs de distribution. Les codes postaux ne commencent pas par un zéro.
/^(?:(?:[1-9])(?:\d{3}))$/
Quatre chiffres, le premier est le district, le deuxième la zone, le troisième la route, le quatrième le numéro du bureau de poste.
/^[1-9]\d{3}$/
Schéma du code postal britannique
/^(?:GIR 0AA|(?:(?:(?:A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGK-PRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?\d|(?:(?:E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(?:SW|W)(?:[2-9]|[1-9]\d)|EC[1-9]\d)\d[ABD-HJLNP-UW-Z]{2}))$/i
Codes postaux de la forme : ‘DDDDD’. Tous les chiffres sont utilisés. Le premier chiffre correspond à la zone de distribution, le deuxième à la région de distribution. Les autres chiffres indiquent le district de distribution et la ville postale.
/^\d{5}$/
Cinq chiffres, les deux premiers indiquent la province. Troisième chiffre : grande ville. Deux derniers chiffres : les zones rurales.
/^(?:0[1-9]|[1-4]\d|5[0-2])\d{3}$/
Premier chiffre : région. Deuxième chiffre : province. Troisième chiffre : capitale/province (impair pour la capitale). Quatrième chiffre : itinéraire. Cinquième chiffre : lieu sur l’itinéraire (0 pour les petits lieux).
/^\d{5}$/
Codes postaux de la forme « DDDDD » ou « DDDDD-DDDD« . Tous les chiffres sont utilisés, aucun n’a de signification particulière.
/^(?:GIR 0AA|(?:(?:(?:A[BL]|B[ABDHLNRSTX]?|C[ABFHMORTVW]|D[ADEGHLNTY]|E[HNX]?|F[KY]|G[LUY]?|H[ADGPRSUX]|I[GMPV]|JE|K[ATWY]|L[ADELNSU]?|M[EKL]?|N[EGNPRW]?|O[LX]|P[AEHLOR]|R[GHM]|S[AEGK-PRSTY]?|T[ADFNQRSW]|UB|W[ADFNRSV]|YO|ZE)[1-9]?\d|(?:(?:E|N|NW|SE|SW|W)1|EC[1-4]|WC[12])[A-HJKMNPR-Y]|(?:SW|W)(?:[2-9]|[1-9]\d)|EC[1-9]\d)\d[ABD-HJLNP-UW-Z]{2}))$/i

Version JavaScript d'une expression régulière pour une adresse postale

Le format des code postaux valide est le suivant « DDDDD ». La méthode prend en paramètre le code postal et lance ensuite une comparaison avec l’expression régulière. S’il ne trouve aucune adresse postale correspondance, la fonction échoue la validation et elle renvoie false, sinon la correspondance renvoie true.

Fonction javascript d'une expression régulière adresse postale
/**
 * Valider un code postal avec une expression régulière
 * 
 * Si le code postal n'est pas valide, retournez false
 * 
 * @param postcode
 * @return Boolean
 */
function validatePostcode(postcode){
    var Reg = new RegExp(/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/i);
    return Reg.test(postcode);
}

Comment utiliser la fonction Javascript

La meilleure façon de l’utiliser sera dans une déclaration IF comme ci-dessous.

if(validatePostcode(postcode)){
     alert("Code postal valide");
} else {
     alert("Code postal invalide");
}

See the Pen Untitled by Damien Flandrin (@dam62500) on CodePen.0

Version PHP d'une expression régulière pour un code postal

Pour vous assurer de confirmer les codes postaux du côté front, il est important de valider également du côté du serveur. Voici un snippet PHP pour valider les adresses postaux côté serveur.

Fonction PHP d'une expression régulière adresse postale
/*
 * valider le code postal
 * @param $postcode
 */
function isValidPostcode($postcode)
{
    return preg_match('/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/i', $postcode);
}

Version HTML

En HTMl, créer des champs pour vérifier si celui-ci est valide ou non via l’attribut pattern de <input>. est possible, vous pouvez y renseigner une expression régulière d’un code postal. Attention, c’est utile uniquement pour afficher l’information visuellement à l’utilisateur par exemple avec des bordures rouges.

<input
      name="postcode"
      type="text"
      pattern="(?:0[1-9]|[1-8]\d|9[0-8])\d{3}"
      placeholder="DDDDD"
     />

Newsletter

Ne manquez jamais les nouveaux conseils, tutoriels et autres.

Pas de spam, jamais. Nous ne partagerons jamais votre adresse électronique et vous pouvez vous désabonner à tout moment.