ToolPane
Blog

Regex for Phone Number Validation

Test regex patterns for phone number validation. Patterns for US, international, and flexible phone number formats.

Open Regex Tester

Phone Number Regex Patterns

Phone numbers vary dramatically by country. The US pattern \(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4} matches formats like (555) 123-4567, 555-123-4567, and 5551234567. For international numbers, ^\+?[1-9]\d{1,14}$ follows the E.164 standard (up to 15 digits with optional + prefix). Avoid overly strict patterns — they frustrate users with valid but unusually formatted numbers.

Best Practices for Phone Validation

  • Be flexible: Accept spaces, dashes, dots, and parentheses — strip them before storing.
  • Don't over-validate: Phone number rules change. Use regex for basic format checking, then use a library like libphonenumber for full validation.
  • Consider international users: Always accept a + prefix and variable lengths for international numbers.
  • Store in E.164 format: Normalize to +CountryCode followed by digits (e.g., +14155551234) for consistent storage and comparison.
// US phone number (flexible)
/\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}/

// International (E.164)
/^\+?[1-9]\d{1,14}$/

// With optional country code
/^(\+\d{1,3}[-.\s]?)?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}$/