Postcodecheck Engeland

Status
Niet open voor verdere reacties.

mrniceguy2002

Gebruiker
Lid geworden
12 apr 2007
Berichten
173
Hey,

ik ben voor het eerst met een eigen regular expression bezig om een Engelse postcode te checken, ik snap alleen nog niet helemaal waar ik mee bezig ben. Ik heb de volgende onderdelen kunnen vinden op Wikipedia (http://en.wikipedia.org/wiki/UK_postcodes)..

> formaat UK postal code
A9 9AA
A99 9AA
A9A 9AA
AA9 9AA
AA99 9AA
AA9A 9AA

Hier geven ze verder ook de regular expression die ik denk te moeten gebruiken
[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][A-Z]{2}


Maar zoals ik deze heb gebruikt, krijg ik het niet aan de praat....
PHP:
function postcodecheckUK($postcode){
	if(isset($postcode)){
		$lengte = strlen($postcode);
		if($lengte >= 5 && $lengte <= 7){
			if(preg_match('^[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][A-Z]{2}$', $postcode)){
				return $postcode;
			}
			else { return "*"; }
		} 
		else { return "*"; }
	}
	else { return "*"; }
}

Kan iemand me hierbij helpen?
Alvast bedankt =)
 
PHP:
<?PHP

$zip = array('SW1A 0AA',// OK
  'SW1A 0PW',// OK
  'SW1A 1AA',// OK
  'SW1A 2AA',// OK
  'SW1A 2AB',// OK
  'SW1A 2HQ',// OK
  'W1A 1AA',// OK
  'W1A 1AB',// OK
  'N81 1ER',// OK
  'A9 9AA',// OK
  'A99 9AA',// OK
  'A9A 9AA',// OK
  'AA9 9AA',// OK
  'AA99 9AA',// OK
  '1AA9 9AA',// *
  '9888 9AA',// *
  'Te lang........'); // *


foreach($zip AS $code)
{
  if(strlen($code) >= 6 AND strlen($code) <= 8)
  {
    if(preg_match('/^[a-z]{1,2}[0-9]{1,2}[a-z]{0,1} [0-9]{1}[a-z]{2}$/i', $code))
    {
      echo 'The code matches!<br />';
    }else{
      echo '*<br />';
    }
  }else{
    echo '*<br />';
} }
?>

Als er nog wat ontbreekt hoor ik het wel...
Jeffrey

p.s. Handige link!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan