• Maak het gebruikers vriendelijk
• De gebruiker mag al of niet een spatie gebruiken en zowel hoofd- als kleine letters invoeren
De html:
Gebruikers vriendelijk betekent ook dat het eerste invoerveld de focus krijgt, de gebruiker kan meteen gaan typen.
Het script:
Het resultaat
Postcode:
De controle met de regex voor de Nederlandse postcode
Verwijder alles wat niet een cijfer of een letter is;
en maak er hoofdletters van.
Gebruik een regex om de postcode te controleren.
Op het internet vind je meestal zoiets:
Onjuist want de combinaties SA, SD en SS zijn geen geldige postcodes.
Doordat we nu geen spaties meer hebben en alleen nog hoofdletters, is de controle op de postcode simpeler geworden.
Postcode in gebruik
De regex checkt alleen of het formaat v.d. postcode geldig is.
De 'hoogste' bestaande postcode van Nederland is 9999XL.
Wil je een bestaande postcode.
Dan voeg je nog deze check toe: if ($postcode <= '9999XL') return true;
Dat werkt omdat het alleen hoofdletters betreft.
Minder leesbaar is dit:
Met een negative lookahead
Minder leesbaar is dit:
Als je ook een spatie en kleine letters wilt toe laten:
Of minder leesbaar:
Regex tips
Gebruik de commentaar modus desnoods zonder commentaar!
Het gebruik van accolades in plaats van "/" maakt de regex beter leesbaar en geeft duidelijkere debug messages.
Gebruik liever classes dan | dat is duidelijker leesbaar en sneller dus [Aa] ipv (A|a)
Vermijd tevens het gebruik van escapes dmv character classes dus [] ipv \
Zoek naar:
Vergelijk met
Geef uw commentaar
Mode
De PHP default is de single line mode de string stopt voor de eerste \n
$ = is einde string maar negeert de \n
\z = echt einde regel inclusief de \n (in s mode)
$test_string="start text\n midden \n eind\n"
Pattern {^start.*eind$} result: No match Pattern {^start.*eind$}s result: A match Pattern {^start.*eind$}m result: No match Pattern {^start.*eind$}ms result: A match
Pattern {^start.*text} result: A match Pattern {^start.*text$}s result: No match Pattern {^start.*text$}m result: A match Pattern {^start.*text$}ms result: A match
Pattern {\Astart.*eind\z} result: No match Pattern {\Astart.*eind\z}s result: No match Pattern {\Astart.*eind\z}m result: No match Pattern {\Astart.*eind\z}ms result: No match Pattern {\Astart.*eind\n\z}s result: A match
Pattern {\Astart.*text\z} result: No match Pattern {\Astart.*text\z}s result: No match Pattern {\Astart.*text\z}m result: No match Pattern {\Astart.*text\z}ms result: No match
REGEX TEST (formaat) '{\A[1-9][0-9]{3}([A-RT-Z][A-Z]|[S][BCE-RT-Z])\z}'
Er wordt slechts 1 fout uitgelegd, voor nog een test herlaadt u de pagina. !!!! 723-SF → ongeldig teken OK 3901YT !!!! 0465SD → een postcode begint niet met 0 !!!! -290Mt → ongeldig teken OK 8159WY OK 8763FZ OK 3811SH OK 9262SX OK 5793HA OK 5232FZ OK 6973AD !!!! 2786SA → SA Sturmabteilung OK 4153DD OK 8454DT !!!! 3977D- → ongeldig teken OK 7928HN OK 4505SY OK 5130MY OK 1629XQ !!!! 5815tV → een postcode bevat geen kleine letters OK 7169GS OK 4559DJ !!!! 9830SA → SA Sturmabteilung OK 2131CA !!!! 0453AN → een postcode begint niet met 0 OK 2699TD OK 2658UJ !!!! 5945Mt → een postcode bevat geen kleine letters !!!! 9351Fa → een postcode bevat geen kleine letters OK 7841ZN OK 3326WQ !!!! 243-CY → ongeldig teken !!!! 1816Sk → een postcode bevat geen kleine letters OK 9189MJ OK 8173SQ OK 2395DT OK 7426XY !!!! 753-RQ → ongeldig teken OK 9468GD !!!! 8891kS → een postcode bevat geen kleine letters !!!! 3-27YX → ongeldig teken !!!! 287-G- → ongeldig teken OK 1243FS !!!! 648-DP → ongeldig teken OK 6538AS OK 7396VJ OK 9061QC !!!! 7-01SH → ongeldig teken !!!! 3969S- → ongeldig teken !!!! 6073Dk → een postcode bevat geen kleine letters !!!! 8645-X → ongeldig teken OK 8461AD OK 8673XY OK 7822QY OK 7536DD OK 6817EN !!!! 0399SA → een postcode begint niet met 0 OK 3585TD OK 6261DG !!!! 8-12DX → ongeldig teken !!!! 7-56kA → ongeldig teken !!!! 2667Wk → een postcode bevat geen kleine letters !!!! 8173aM → een postcode bevat geen kleine letters OK 6714DA !!!! 9783Qk → een postcode bevat geen kleine letters !!!! 9699aP → een postcode bevat geen kleine letters OK 9079QG OK 8112CM OK 8219DD OK 7539AA !!!! -632DX → ongeldig teken OK 7798DG OK 9294XF !!!! 6776Da → een postcode bevat geen kleine letters !!!! 55-8VC → ongeldig teken OK 6547DD !!!! 7989Nk → een postcode bevat geen kleine letters OK 6337YA OK 6874GA !!!! 3159Wa → een postcode bevat geen kleine letters OK 6848GS !!!! 465-SA → ongeldig teken OK 3105AS OK 3462TN !!!! 3-70TE → ongeldig teken OK 8175HD OK 7789DZ !!!! 4746tS → een postcode bevat geen kleine letters OK 3325JT OK 3179YC OK 3186AY OK 5709FG OK 5296GX !!!! 690-JZ → ongeldig teken OK 5597QN OK 9834DA OK 7545AA !!!! 9-87AS → ongeldig teken OK 7025AZ OK 6733JA
tags Regex postcode,Regex Nederlandse postcode,Regular expression voor Nederlandse postcode,regex dutch zipcode, Postcode check for Netherlands