
De reguliere expressie hieronder test een Franse postcode in de vorm “DDDDD”. Alle cijfers worden gebruikt. De eerste twee cijfers zijn het nummer van het departement en lopen van 01 tot 98. De code hierna is de reguliere expressie waarmee je controleert of het formaat klopt.
reguliere expressie postcode
/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/Hieronder staan ook reguliere expressies voor postcodes van andere landen, vervang de expressie gewoon door degene die je nodig hebt.
België
Postcodes in de vorm “DDDD”, waarbij het eerste cijfer de provincie aangeeft en de andere de bedelingssectoren. Belgische postcodes beginnen nooit met een nul.
/^(?:(?:[1-9])(?:\d{3}))$/Zwitserland
Vier cijfers: het eerste is het district, het tweede de zone, het derde de route, het vierde het nummer van het postkantoor.
/^[1-9]\d{3}$/Verenigd Koninkrijk
Opbouw van de Britse postcode
/^(?: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}))$/iDuitsland
Postcodes in de vorm “DDDDD”. Alle cijfers worden gebruikt. Het eerste cijfer is de bezorgzone, het tweede de bezorgregio. De overige cijfers geven het bezorgdistrict en de postplaats aan.
/^\d{5}$/Spanje
Vijf cijfers, de eerste twee geven de provincie aan. Derde cijfer: grote stad. Laatste twee cijfers: het platteland.
/^(?:0[1-9]|[1-4]\d|5[0-2])\d{3}$/Italië
Eerste cijfer: regio. Tweede cijfer: provincie. Derde cijfer: hoofdstad of provincie (oneven voor de hoofdstad). Vierde cijfer: route. Vijfde cijfer: plaats op de route (0 voor kleine plaatsen).
/^\d{5}$/Verenigde Staten
ZIP-codes in de vorm “DDDDD” of “DDDDD-DDDD”. Alle cijfers worden gebruikt, en geen enkel cijfer heeft een bijzondere betekenis.
/^(?: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}))$/iJavaScript-versie van de reguliere expressie voor een postcode
Het geldige postcodeformaat is “DDDDD”. De functie krijgt de postcode als parameter en vergelijkt hem met de reguliere expressie. Vindt ze geen match, dan mislukt de validatie en geeft de functie false terug, bij een match is dat true.
JavaScript-functie met een reguliere expressie voor een postcode
/**
* Een postcode valideren met een reguliere expressie
*
* Als de postcode ongeldig is, geef false terug
*
* @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);
}Hoe je de JavaScript-functie gebruikt
Je gebruikt hem het best in een IF-statement, zoals hieronder.
if(validatePostcode(postcode)){
alert("Code postal valide");
} else {
alert("Code postal invalide");
}
See the Pen
Untitled by Damien Flandrin (@dam62500)
on CodePen.
PHP-versie van de reguliere expressie voor een postcode
Postcodes aan de frontkant valideren is niet genoeg: dezelfde controle hoort ook op de server te draaien. Hier is een PHP-snippet dat postcodes aan serverzijde valideert.
PHP-functie met een reguliere expressie voor een postcode
/*
* de postcode valideren
* @param $postcode
*/
function isValidPostcode($postcode)
{
return preg_match('/^(?:0[1-9]|[1-8]\d|9[0-8])\d{3}$/i', $postcode);
}HTML-versie
In HTML kun je velden maken die aangeven of de waarde geldig is, via het attribuut pattern van <input>, waarin je een reguliere expressie voor een postcode zet. Let op: dat is alleen nuttig om de gebruiker de informatie visueel te tonen, bijvoorbeeld met rode randen.
<input
name="postcode"
type="text"
pattern="(?:0[1-9]|[1-8]\d|9[0-8])\d{3}"
placeholder="DDDDD"
/>
See the Pen
Een postcode valideren met een reguliere expressie in HTML by Damien Flandrin (@dam62500)
on CodePen.


