'Dutch Phone Numbers', 'error' => '"%value" is not a valid Dutch phone number!
Dutch phone numbers should contain only numbers and spaces and - and be like 099-9999999 with an optional prefix of "+31".', ); } /** * Verifies that $phonenumber is a valid ten-digit Dutch phone number with spaces and - * * Regular expression adapted from Nico Lubbers's regex at RegExLib.com * * @param string $phonenumber * @return boolean Returns boolean FALSE if the phone number is not valid. */ function valid_nl_phone_number($phonenumber) { //$phonenumber = trim($phonenumber); /* Accepts: 06-12345678 06 123 456 78 010-1234567 020 123 4567 0221-123456 0221 123 456 Rejects: 05-12345678 123-4567890 123 456 7890 */ // define regular expression $regex = '/ ([0]{1}[6]{1}[-\s]+[1-9]{1}[\s]*([0-9]{1}[\s]*){7}) # Mobile phonenumber | ([0]{1}[1-9]{1}[0-9]{2}[-\s]+[1-9]{1}[\s]*([0-9]{1}[\s]*){5}) # Phonenumber with 4 digit area code | ([0]{1}[1-9]{1}[0-9]{1}[-\s]+[1-9]{1}[\s]*([0-9]{1}[\s]*){6}) # Phonenumber with 3 digit area code /x'; // return true if valid, false otherwise return (bool) preg_match($regex, $phonenumber); } /** * Formatting for Dutch Phone Numbers into standard area-phonenumber or with extra country code +31 international format * * @param string $phonenumber * @return string Returns a string containting the phone number with some formatting. */ function format_nl_phone_number($phonenumber, $field) { $areacode = $localnumber = ''; // Mobile number if (preg_match('/([0]{1}[6]{1}[-\s]+[1-9]{1}[\s]*([0-9]{1}[\s]*){7})/', $phonenumber)) { preg_match('/(?[0]{1}[6]{1})[-\s]+(?[1-9]{1}[\s]*([0-9]{1}[\s]*){7})/', $phonenumber, $matches); } // Phonenumber with 4 digit area code if (preg_match('/([0]{1}[1-9]{1}[0-9]{2}[-\s]+[1-9]{1}[\s]*([0-9]{1}[\s]*){5})/', $phonenumber)) { preg_match('/(?[0]{1}[1-9]{1}[0-9]{2})[-\s]+(?[1-9]{1}[\s]*([0-9]{1}[\s]*){5})/', $phonenumber, $matches); } // Phonenumber with 3 digit area code if (preg_match('/([0]{1}[1-9]{1}[0-9]{1}[-\s]+[1-9]{1}[\s]*([0-9]{1}[\s]*){6})/', $phonenumber)) { preg_match('/(?[0]{1}[1-9]{1}[0-9]{1})[-\s]+(?[1-9]{1}[\s]*([0-9]{1}[\s]*){6})/', $phonenumber, $matches); } $areacode = $matches[areacode]; $localnumber = preg_replace('/ /', '', $matches[localnumber]); $phonenumber = $areacode. '-'. $localnumber; // Add Country code if needed if ($field['phone_country_code']) { $areacode = preg_replace('/^0/', '', $areacode); $phonenumber = '+31-'. $areacode. '-'. $localnumber; } return $phonenumber; }