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