<?php
$address = '5e Dorpsstraat 5-B';
$matchArr = array();
$matchesFound = preg_match('/(\d+)/', $address, $matchArr);
if ($matchesFound === 0) {
throw new TransactionValidationException('Could not find house number in address.');
}
$houseNumber = array_pop($matchArr[0]);
// strrpos om problemen te voorkomen bij straatnamen zoals 151th Avenue 151
$houseNumberStartPos = strrpos($address, $houseNumber);
$streetName = substr($address, 0, $houseNumberStartPos);
// Verwijder whitespace bij correcte notatie, geen -1 op strrpos voor foute notatie.
// Voorbeeld Dorpsstraat 12 (correct), Dorpsstraat12 (incorrect).
$streetName = trim($streetName);
$houseNumberAdd = NULL;
// Check of er mogelijk een additie is op het huisnummer, zoals B of -A of w/e.
if (strlen($address) > ($houseNumberStartPos + strlen($houseNumber))) {
$houseNumberAdd = substr($address, ($houseNumberStartPos + strlen($houseNumber)));
$matchArr = array();
// Filter alles dat niet alfa is uit de addition field.
$matchFound = preg_match('/a-Z/', $houseNumberAdd, $matchArr);
if ($matchFound === 1) {
$houseNumberAdd = $matchArr[0];
}
}
print $streetName . " / ";
print $houseNumber . " / ";
print $houseNumberAdd;