A PHP Error was encountered

Severity: 8192

Message: Methods with the same name as their class will not be constructors in a future version of PHP; Cacheall_info has a deprecated constructor

Filename: libraries/cacheall_info.php

Line Number: 136

Regex postcode Nederland


Postcode validatie met PHP

Het formulier

• 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