Regex para número de telefone internacional (E.164)

Use /^\+[1-9]\d{1,14}$/ para verificar se uma string inteira é um número de telefone internacional válido (E.164). Cada exemplo abaixo foi testado contra o padrão, e você pode abri-lo no Testador de Regex com os exemplos já carregados.

Atualizado em

/^\+[1-9]\d{1,14}$/
Abrir no Testador de Regex
EntradaResultado
+14155550199✓ Corresponde
+442071838750✓ Corresponde
+919876543210✓ Corresponde
14155550199✗ Não corresponde
+0123456789✗ Não corresponde
+1 415 555 0199✗ Não corresponde
+1234567890123456✗ Não corresponde

Como o padrão funciona

ParteSignificado
^\+Começa com um sinal de mais
[1-9]Códigos de país nunca começam com 0
\d{1,14}Até mais 14 dígitos — E.164 permite 15 dígitos no total
$Fim da string, então sem espaços ou traços

Exemplos de código

JavaScript

const re = /^\+[1-9]\d{1,14}$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'\+[1-9]\d{1,14}', value))

PHP

preg_match('/^\+[1-9]\d{1,14}$/', $value) === 1;

Observações e limitações

E.164 é o formato que Twilio, WhatsApp e a maioria das APIs de SMS esperam. Remova espaços, traços e parênteses antes de testar, e adicione o código do país se o usuário não o informou.

Perguntas frequentes

Qual é a regex para número de telefone internacional (E.164)?
/^\+[1-9]\d{1,14}$/ — ela corresponde à string inteira. Veja a tabela acima para o que cada parte faz.
Quais exemplos correspondem?
Dos exemplos testados, estes correspondem: +14155550199, +442071838750, +919876543210. Os outros 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 enquanto você edita.