Validating Simple US Phone Number Formats
Owner: SnippetBot
Created: 2026-11-06 00:00:22
Size: 0.86 KB
Expires: Never
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
function isValidUSPhoneNumber(string $phoneNumber): bool {
// Supports formats like: (123) 456-7890, 123-456-7890, 123.456.7890, 123 456 7890
// Allows optional country code '1 ' at the beginning.
$regex = '/^(?:(?:\+1\s*)|\(?[0-9]{3}\)?[\s.-]?)[0-9]{3}[\s.-]?[0-9]{4}$/';
return preg_match($regex, $phoneNumber) === 1;
}
echo isValidUSPhoneNumber("(123) 456-7890") ? "true
" : "false
"; // true
echo isValidUSPhoneNumber("123-456-7890") ? "true
" : "false
"; // true
echo isValidUSPhoneNumber("123.456.7890") ? "true
" : "false
"; // true
echo isValidUSPhoneNumber("123 456 7890") ? "true
" : "false
"; // true
echo isValidUSPhoneNumber("+1 123-456-7890") ? "true
" : "false
"; // true
echo isValidUSPhoneNumber("555-1234") ? "true
" : "false
"; // false (too short)
echo isValidUSPhoneNumber("abc-def-ghi") ? "true
" : "false
"; // false
?>