Scripts

Geldige Postcode

Omdat ik meer dan 5 minuten moest zoeken naar een geldigepostcode regex (m'n oude blog is offline en dat was een nummer 1 hit..) en ik hem hier niet kon vinden, wil ik hem hier plaatsen. Het is een snippet, maar met een werkende pagina erom heen als voorbeeld. Je kunt een postcode invoeren en hij vertelt je vervolgens of de postcode juist is of niet!

regex.postcode.php
<?php
# Dit is de regex die je wilt gebruiken
$regex = '~\A[1-9]\d{3} ?[a-zA-Z]{2}\z~';

# Dit is de oude regex, waar twee fouten in zaten
# Ten eerste begint een postcode ten alle tijden met een 1
# En ten tweede, \s is niet genoeg
#$regex = '/^[0-9]{4}[\s]{0,1}[a-z]{2}$/i';

# Dit is gewoon een simpele pagina eromheen
# Maar, omdat de demo online staat,  geen zin in XSS =)
$postcode = !empty($_GET['p']) ? htmlentities($_GET['p']) : '1234 AB';
$valid = preg_match($regex, $postcode, $matches);

# Debug
//echo '<pre>'.print_r($matches, true).'</pre>';

if($valid)
{
	echo '<span style="color: #00FF00;">Goed</span>';	
}
else
{
	echo '<span style="color: #FF0000;">Verkeerd!</span>';
}

echo '
	<form method="get" action="regex.postcode.php">
		<input type="text" name="p" value="'.$postcode.'" />
		<input type="submit" value="Check" />
	</form>';
regex.postcode.be.php
<?php
# Dit is de regex die je wilt gebruiken voor een belgische postcode
$regex = '~\A[1-9]\d{3}\z~';

# Dit is gewoon een simpele pagina eromheen
# Maar, omdat de demo online staat,  geen zin in XSS =)
$postcode = !empty($_GET['p']) ? htmlentities($_GET['p']) : '1234';
$valid = preg_match($regex, $postcode, $matches);

# Debug
//echo '<pre>'.print_r($matches, true).'</pre>';

if($valid)
{
    echo '<span style="color: #00FF00;">Goed</span>';    
}
else
{
    echo '<span style="color: #FF0000;">Verkeerd!</span>';
}

echo '
    <form method="get" action="regex.postcode.be.php">
        <input type="text" name="p" value="'.$postcode.'" />
        <input type="submit" value="Check" />
    </form>'; 

Reacties

0
Nog geen reacties.