• 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. OK 5417AS OK 5846UG OK 1729GJ OK 7511MS !!!! 5967-t → ongeldig teken OK 4836RA OK 3162VD OK 8916TD OK 3396VS !!!! 6971-a → ongeldig teken OK 1327HA !!!! 5965Dt → een postcode bevat geen kleine letters !!!! 0569DA → een postcode begint niet met 0 OK 3528AY OK 1716ZP !!!! -956UD → ongeldig teken OK 5590RS OK 9879MD !!!! 589-tS → ongeldig teken !!!! 5893-P → ongeldig teken OK 4327TD !!!! 9498SS → SS Schutzstaffel OK 8949SX OK 4873KD !!!! 29-3SY → ongeldig teken !!!! 5298SA → SA Sturmabteilung OK 9371SQ OK 1862HX !!!! 0697XA → een postcode begint niet met 0 !!!! 4811kP → een postcode bevat geen kleine letters OK 5873DC OK 5851UX !!!! 6727kA → een postcode bevat geen kleine letters OK 5618BA OK 9861NS !!!! -784AS → ongeldig teken OK 3518GD OK 2967TA OK 6852GD !!!! -568AC → ongeldig teken !!!! 1766A- → ongeldig teken OK 3371AD OK 8237ZX OK 9215DD OK 8175YF OK 7263CS !!!! 0236AD → een postcode begint niet met 0 !!!! -058SC → ongeldig teken !!!! 25-9PD → ongeldig teken OK 5170HJ OK 6858AD OK 3514AJ OK 6495HC OK 5736DV OK 6685YM !!!! 41-2Sa → ongeldig teken !!!! 0165BX → een postcode begint niet met 0 !!!! 892-KJ → ongeldig teken !!!! 84-6YD → ongeldig teken OK 7317YA !!!! 8726tX → een postcode bevat geen kleine letters !!!! 8792tK → een postcode bevat geen kleine letters !!!! 556-Z- → ongeldig teken !!!! 4926Sa → een postcode bevat geen kleine letters !!!! 682-aD → ongeldig teken OK 5778SK OK 9272BS OK 8013DD OK 7618AW !!!! 4613tT → een postcode bevat geen kleine letters OK 5572SR OK 3182TR OK 7667CK !!!! 8671J- → ongeldig teken OK 1573AF OK 9148JC OK 1728ZX OK 3211RW !!!! 3141SS → SS Schutzstaffel OK 3288US !!!! 7182aS → een postcode bevat geen kleine letters OK 5329DD !!!! 0132ZC → een postcode begint niet met 0 !!!! 7234SA → SA Sturmabteilung OK 7310DX !!!! 18-5tQ → ongeldig teken OK 6819AS !!!! 2236Ek → een postcode bevat geen kleine letters !!!! 9615SD → SD Sicherheitsdienst !!!! 949-VA → ongeldig teken !!!! 2-89SS → ongeldig teken OK 1036AP !!!! 7-10SS → ongeldig teken OK 1652DA OK 5347ST OK 6347BK !!!! 2-92DX → ongeldig teken OK 9232MS OK 3265SE !!!! 2464tT → een postcode bevat geen kleine letters
tags Regex postcode,Regex Nederlandse postcode,Regular expression voor Nederlandse postcode,regex dutch zipcode, Postcode check for Netherlands