Ik heb een regex die de postcode controleerd.
Maar deze wordt niet gedraaid.
Op een of andere manier slaat hij hem over.

if (ereg("^[0-9]{4} [a-zA-Z]{2}$", $post)){
	echo "<script>
	alert('Gelieve uw postcode op deze manier in te vullen: 1234 AB');
	history.back();
	</script>";
	exit();
	}
Hoe bedoel je 'wordt niet gedraaid'? Geeft het een error? Kun je alles invoeren wat je maar wilt?
Je regex is inderdaad niet correct. Voorbeeldje dat wel werkt:
<?php
$pcs = array (
'0123AA',
'0123 AA',
'1234AA',
'1234 AA'
);

foreach ($pcs as $pc) {
if (preg_match ('/^[1-9]{1}[0-9]{3}\s?[a-zA-Z]{2}$/', $pc)) {
echo 'geldig: ' . $pc;
}
else {
echo 'ongeldig: ' . $pc;
}
echo '<br />';
}
?>
Edit: Mijn regex staat een spatie toe tussen de vier letters en de twee cijfers. Bovendien eist hij dat het eerste cijfer geen nul mag zijn.
@Jan;
Als een regexps-expressie tussen brackets ([ en ]) maar één keer hoeft voor te komen ([1-9]{1}), kun je ook {1} weglaten.
Verder mooi en handig inderdaad :)
@ Douwe: klopt, maar met {1} leest de regex lekkerder vind ik.
C'est vrai :)
Sorry, Ik heb het geprobeerd:

if (preg_match ('/^[1-9]{1}[0-9]{3}\s?[a-zA-Z]{2}$/', $post)){
	echo "<script>
	alert('Gelieve uw postcode op deze manier in te vullen: 1234 AB');
	history.back();
	</script>";
	exit();
	}


Maar het werkt nog steeds niet. Kijk op http://www.rofianda.nl/

Daarna klik je op informatie. En dan vul je de eerste vier velden maar iets in. Hij controleerd niet of de postcode correct is.
@christiaan

Maar hoe komt dan de waarde uit je formulier in de variabele $post
Ik denk dat je wilt controleren of het NIET matcht met de regular expression ;)
if (!preg_match
dus :)
Edit: let but ;-)
Bedankt het is nu opgelost

Reageren