| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | <?php/** * @file * CCK Field for Dutch phone numbers. */function phone_nl_metadata() {  // These strings are translated using t() on output.  return array(    'error' => '"%value" is not a valid Dutch phone number!<br>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[1];  $localnumber = preg_replace('/ /', '', $matches[2]);  $phonenumber = $areacode. '-'. $localnumber;  // Add Country code if needed  if ($field['phone_country_code']) {      $areacode = preg_replace('/^0/', '', $areacode);      $phonenumber = '+31-'. $areacode. '-'. $localnumber;  }  return $phonenumber;}
 |