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.
/^(?: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.
/^(?:(?:[1-9])(?:\d{3}))$/
/^[1-9]\d{3}$/
/^(?: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
/^\d{5}$/
/^(?:0[1-9]|[1-4]\d|5[0-2])\d{3}$/
/^\d{5}$/
/^(?: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.
/**
* 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");
}
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.
/*
* 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"
/>
See the Pen Valider un code postal avec une expression régulière en HTML by Damien Flandrin (@dam62500) on CodePen.0