It's sad, but there's no way to make sure a telephone number is valid outside of making a real telephone call. However, you can validate the number of digits and put it into standard format. The following function returns a pure 10-digit phone number if the number given is 10 digits or 11 digits starting with 1. If the number does not conform, the return value is false.
<?php
function is_phone($phone) {
$phone = preg_replace('/[^\d]+/', '', $phone);
$num_digits = strlen($phone);
if ($num_digits == 11 && $phone[0] == "1") {
return substr($phone, 1);
} else if ($num_digits == 10) {
return $phone;
} else {
return false;
}
}
?>
This script shows the power of regular expressions combined with standard string functions. The key is to first throw out any character that's not a digit—a perfect task for the
preg_replace() function. Once you know that you have nothing but digits in a string, you can simply examine the string length to determine the number of digits, and the rest practically writes itself.
Hope it helps.
0 comments:
Post a Comment