Regex para número de telefone dos EUA

Use /^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/ para verificar se uma string inteira é um número de telefone válido dos EUA. Todos os exemplos abaixo foram testados com o padrão, e você pode abri-los no Testador de Regex com as amostras já carregadas.

Atualizado em

/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/
Abrir no Testador de Regex
EntradaResultadoGrupos
(212) 555-0123✓ Corresponde212 555 0123
212-555-0123✓ Corresponde212 555 0123
+1 415.555.0199✓ Corresponde415 555 0199
4155550199✓ Corresponde415 555 0199
123-456-7890✗ Sem correspondência
555-1234✗ Sem correspondência
(212) 555-01234✗ Sem correspondência
+44 20 7183 8750✗ Sem correspondência

Como o padrão funciona

ParteSignificado
(?:\+1[-. ]?)?Código de país +1 opcional, seguido de um separador opcional
\(?([2-9]\d{2})\)?Código de área (grupo 1), opcionalmente entre parênteses; não pode começar com 0 ou 1
[-. ]?Hífen, ponto ou espaço opcional
(\d{3})Prefixo (grupo 2)
(\d{4})Número da linha (grupo 3)

Exemplos de código

JavaScript

const re = /^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})', value))

PHP

preg_match('/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/', $value) === 1;

Notas e limitações

Os três grupos permitem normalizar qualquer formato aceito, por exemplo para ($1) $2-$3. Para números internacionais, armazene-os no formato E.164 e use uma biblioteca como libphonenumber para a validação real.

Perguntas frequentes

Qual é a regex para número de telefone dos EUA?
/^(?:\+1[-. ]?)?\(?([2-9]\d{2})\)?[-. ]?(\d{3})[-. ]?(\d{4})$/ — ela casa com a string inteira. Veja a tabela acima para entender o que cada parte faz.
Quais exemplos correspondem?
Dos exemplos testados, estes correspondem: (212) 555-0123, 212-555-0123, +1 415.555.0199, 4155550199. Os demais não.
Como testo essa regex?
Clique em “Abrir no Testador de Regex” — o padrão, as flags e o texto de exemplo carregam automaticamente, e as correspondências são destacadas conforme você edita.