
Validador de Regex de Número de Telefone em Javascript
O Validador de Regex de Número de Telefone em JavaScript permite verificar instantaneamente se uma string de número segue um formato válido de telefone usando regex em JavaScript. É ideal para formulários de contato, fluxos de cadastro ou qualquer aplicação web que colete entradas de telefone. Use junto com nosso JavaScript Regex Tester para criar e refinar seus próprios padrões, ou combine com o Validador de Regex de E-mail em JavaScript para validação completa de formulários de contato. Você também pode codificar números validados usando o Codificador Base64 ou gerar tokens seguros para sistemas de login baseados em telefone com o Gerador de Token.
Validador de Regex de Número de Telefone em Javascript - Documentação
O que é Regex de Número de Telefone?
O regex de número de telefone é um padrão de expressão regular que verifica se uma string corresponde a um formato válido de número de telefone. O padrão pode variar com base em:
Formato do país
Celular vs. telefone fixo
Uso de símbolos como +, -, (, ) ou espaços
Padrão de Regex para Número de Telefone em JavaScript
Regex Básico para Número de Telefone Internacional:
/^\+?[0-9]{1,4}?[-.\s]?(\(?\d{1,5}?\)?)[-.\s]?\d{1,5}[-.\s]?\d{1,9}$/Análise do Padrão:
^\+?: + opcional para código de país[0-9]{1,4}?: Dígitos do código de país[-.\s]?: Separador opcional(\(?\d{1,5}?\)?): Código de área opcional com ou sem parênteses\d{1,5}: Prefixo ou seção do número\d{1,9}: Parte final do número$: Fim da string
Ao criar formulários para coletar números de telefone, para contato, notificações SMS ou perfis de usuário, os usuários podem inserir números de maneiras muito variadas. Por exemplo, todos os seguintes são números válidos dos EUA:
+1-202-555-0123
+44 20 7946 0958
(123) 456-7890
Se você quiser impor separadores consistentes em todo o número, normalmente usaria um grupo de captura para o separador e depois o referenciaria mais tarde no padrão usando uma referência retroativa. Isso garante que, se um separador for usado, ele seja o mesmo em toda a string. Se preferir permitir flexibilidade, omita a referência retroativa.
Exemplo de Código 1 - Validação Básica de Número de Telefone
const phone = "+91-9876543210"; const pattern = /^\+?[0-9]{1,4}?[-.\s]?(\(?\d{1,5}?\)?)[-.\s]?\d{1,5}[-.\s]?\d{1,9}$/;
console.log(pattern.test(phone)); // true
Exemplo de Código 2 - Validar Múltiplos Números
const numbers = ["+1 800-123-4567", "1234567890", "(011) 2345 6789"];const pattern = /^+?[0-9]{1,4}?[-.\s]?((?\d{1,5}?)?)[-.\s]?\d{1,5}[-.\s]?\d{1,9}$/;
numbers.forEach(num => { console.log(${num} → ${pattern.test(num)}); });
Cobre uma Ampla Variedade de Formatos
O padrão regex acima é versátil o suficiente para corresponder a uma variedade de estilos de número de telefone ao redor do mundo, incluindo:
Números internacionais com ou sem o sinal de mais
Formatos dos EUA e locais
Números com códigos de área entre parênteses, com ou sem espaços
Números com códigos de país variáveis e separadores
Exemplo de Código 3 - Validar Entrada em um Formulário Web
<input type="text" id="phoneInput" placeholder="Enter your phone number" /> <p id="status"></p><script> const pattern = /^+?[0-9]{1,4}?[-.\s]?((?\d{1,5}?)?)[-.\s]?\d{1,5}[-.\s]?\d{1,9}$/;
document.getElementById("phoneInput").addEventListener("input", function () { const isValid = pattern.test(this.value.trim()); document.getElementById("status").textContent = isValid ? "Valid Number" : "Invalid Number"; }); </script>
Por que Alguns Números de Telefone Falham na Validação
Se você está se perguntando por que algo como (000) 999-5555 pode não passar em certos padrões regex, é porque alguns regex exigem que os separadores entre grupos de números sejam consistentes em todo o número de telefone. Para permitir separadores mistos, ajuste o padrão para que cada posição de separador seja correspondida de forma independente.
Como Referências Retroativas (\1) Mantêm os Separadores Consistentes
Padrões regex frequentemente usam referências retroativas (como \1) para garantir consistência dentro da string correspondida. Para números de telefone:
([-\s.])?captura um separador opcional (hifen, espaço ou ponto) após o código de área.Usar
\1diz ao regex que o separador encontrado anteriormente deve se repetir. Assim, "123-456-7890" corresponde, mas "123-456.7890" não.
Para permitir separadores mistos, substitua a referência retroativa específica pelo padrão mais amplo de qualquer separador.
Validando Apenas o Conteúdo Numérico
Para garantir que um número de telefone contenha exatamente 10 dígitos, independentemente da formatação:
var originalPhoneNumber = "415-555-1212";
function isValid(p) { var phoneRe = /^[2-9]\d{2}[2-9]\d{2}\d{4}$/; var digits = p.replace(/\D/g, ""); return phoneRe.test(digits); }Requisitos de Comprimento de Dígitos por País
Ao validar números de telefone, é importante considerar os requisitos específicos de dígitos por país:
Argentina: 8 a 13 dígitos no total.
Estados Unidos: Pelo menos 10 dígitos (sem contar o código do país).
União Europeia: Muitos países usam 9 dígitos para números locais.
Índia: Exatamente 10 dígitos, geralmente com o código de país +91.
China: Normalmente 10 ou 11 dígitos. O código de país (+86) precede esses em formatos internacionais.
Validando Números de Telefone com Código de País
Para garantir que um número inclua um código de país válido, combine regex com um array de códigos ISD:
Extraia os dígitos da entrada.
Verifique se o número tem um comprimento razoável (8 a 16 dígitos).
Isole os dígitos iniciais como um possível código ISD.
Compare com uma lista predefinida de códigos ISD válidos.
Tratando Códigos de País e Separadores Opcionais
Para tratar números que podem ou não começar com o código de país dos EUA:
^(1[ -]?)?Combinando com o restante de um padrão padrão de número dos EUA:
/^(1[ -]?)?\d{3}[ -]?\d{3}[ -]?\d{4}$Isso corresponde a: 1-800-123-4567, 1 800 123 4567, 800-123-4567.
Formatos Comuns de Números dos EUA Aceitos
Este regex é flexível o suficiente para corresponder a uma ampla variedade de formatos de números dos EUA:
202-515-5555
202 515 5555
(202)515 5555
1 202 515 5555
2025155555
1-202-515-5555
Garantindo que o Regex Siga as Regras NANP
Para validação estrita do North American Numbering Plan (NANP):
Formato do Código de Área e Troca: Ambos devem começar com um dígito de 2 a 9.
Restrição N11: Códigos de área e trocas padrão não podem terminar em "11".
Estrutura: O formato aprendido é
NXX-NXX-XXXX, ondeN= [2-9] eX= [0-9].
Validação Estrita vs. Flexível em JavaScript
Validação flexível aceita uma ampla variedade de formatos de número de telefone. Os usuários podem inserir seus números com diferentes separadores, parênteses ou com/sem código de país. A vantagem principal é que os usuários não são bloqueados por requisitos de formatação. A desvantagem é que padrões flexíveis não capturam erros tipográficos ou números malformados.
Validação estrita aplica um formato esperado preciso. Se você precisa garantir dados limpos e previsíveis, por exemplo, antes de armazenar em banco de dados ou integrar com serviços como Twilio, a validação estrita é a opção mais segura.
Dicas para Validação Flexível e Confiável
var originalPhoneNumber = "415-555-1212";
function isValid(p) { var phoneRe = /^[2-9]\d{2}[2-9]\d{2}\d{4}$/; var digits = p.replace(/\D/g, ""); return phoneRe.test(digits); }Dicas Profissionais
Sempre use .trim() na entrada para remover espaços acidentais do usuário.
Para números de celular indianos, simplifique o regex para:
/^[6-9]\d{9}$/Precisa exatamente de 10 dígitos? Use:
return value.match(/\d/g).length === 10;Use padrões mais específicos por país ao validar números locais.
Para aplicativos globais, considere integrar com bibliotecas como libphonenumber para validação mais profunda.
Casos de Uso
Formulários de Cadastro: Valide instantaneamente números de telefone inseridos por usuários.
Sistemas de CRM: Filtre e limpe números de telefone antes de adicionar ao banco de dados.
Automação de Marketing: Garanta números precisos antes de enviar campanhas de SMS.
Aplicativos de Reserva: Evite entradas inválidas em formulários e fluxos de retorno de chamada.
Combine com Estas Ferramentas
JavaScript Regex Tester: Crie ou teste padrões personalizados de regex de telefone.
Validador de Regex de E-mail em JavaScript: Use com formulários que coletam telefone e e-mail.
Validador de Regex de UUID em JavaScript: Identifique usuários por UUID após validar números de telefone.
Codificador Base64: Codifique com segurança números de telefone validados para armazenamento ou APIs.
Gerador de Token: Use em fluxos de verificação de cadastro com OTP ou autenticação por SMS.
Frequently Asked Questions
Este regex pode validar todos os formatos globais?
Ele verifica se o número está ativo?
Por que parênteses são permitidos?
O sinal de mais (+) é obrigatório?
Qual é a melhor forma de limpar a entrada do usuário antes do regex?
Como criar um regex que permita apenas certos caracteres (dígitos, +, (), -, . e espaços) em números de telefone?
Por que é importante personalizar a contagem mínima e máxima de dígitos para validação de número de telefone com base no país?
Related Articles



Teste suas APIs hoje!
Escreva em linguagem natural e o Qodex gera testes seguros e prontos para rodar.



