$numbers[]='+1 404-223-1122';
$numbers[]='1-234-567-8901';
$numbers[]='1-234-567-8901 x1234';
$numbers[]='1-234-567-8901 ext1234';
$numbers[]='1 (234) 567-8901';
$numbers[]='1.234.567.8901';
$numbers[]='1/234/567/8901'; //fails
$numbers[]='12345678901';
foreach($numbers as $number){
echo $number.'=';
if(preg_match('/^(?:(?:\+?1\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\s*\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{4})(?:\s*(?:#|x\.?|ext\.?|extension)\s*(\d+))?$/',$number)){
echo "Pass\n";
}
else {
echo "Fail\n";
}
}