Como validar telefone e criar máscara em JavaScript

Validar um número de telefone e aplicar uma máscara de formatação são tarefas comuns ao desenvolver formulários interativos. Garantir que o usuário insira o telefone no formato correto melhora a experiência e evita erros de dados. Neste post, vamos aprender como validar telefone e criar máscara em JavaScript.

O que é validação e máscara?

  • Validação: Verifica se o número de telefone está no formato correto (por exemplo, se contém a quantidade certa de dígitos).

  • Máscara: Formata a entrada do número de telefone à medida que o usuário digita, facilitando a visualização e garantindo que o formato esteja correto.

Por exemplo, para um número de telefone no Brasil, o formato ideal pode ser (XX) XXXXX-XXXX.

Criando a máscara de telefone

Vamos criar uma função que, à medida que o usuário digita, formata o número no formato de telefone brasileiro (XX) XXXXX-XXXX.

HTML

Primeiro, crie um campo de entrada no seu HTML para o número de telefone:

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Validação de Telefone com Máscara</title>
</head>
<body>
    <h1>Validação de Telefone com Máscara</h1>

    <form>
        <label for="telefone">Telefone:</label>
        <input type="text" id="telefone" placeholder="(00) 00000-0000" maxlength="15" oninput="aplicarMascara(this)">
        <p id="erro" style="color: red;"></p>
    </form>

    <button onclick="validarTelefone()">Validar Telefone</button>
    <p id="resultado"></p>

    <script src="script.js"></script>
</body>
</html>

JavaScript (script.js)

Agora, vamos criar a função de máscara e a função de validação no arquivo script.js:

// Função para aplicar máscara no telefone
function aplicarMascara(input) {
    // Remove todos os caracteres que não são dígitos
    let telefone = input.value.replace(/\D/g, '');

    // Aplica a máscara (XX) XXXXX-XXXX
    if (telefone.length > 10) {
        telefone = telefone.replace(/^(\d{2})(\d{5})(\d{4})/, '($1) $2-$3');
    } else if (telefone.length > 5) {
        telefone = telefone.replace(/^(\d{2})(\d{4})/, '($1) $2-');
    } else if (telefone.length > 2) {
        telefone = telefone.replace(/^(\d{2})/, '($1) ');
    }

    // Atualiza o valor do campo de entrada
    input.value = telefone;
}

// Função para validar telefone
function validarTelefone() {
    const telefone = document.getElementById('telefone').value;
    const regexTelefone = /^\(\d{2}\) \d{5}-\d{4}$/; // Padrão de telefone brasileiro (XX) XXXXX-XXXX

    // Verifica se o número corresponde ao formato da expressão regular
    if (regexTelefone.test(telefone)) {
        document.getElementById('resultado').innerText = "Telefone válido!";
        document.getElementById('erro').innerText = "";
    } else {
        document.getElementById('resultado').innerText = "";
        document.getElementById('erro').innerText = "Número de telefone inválido. Por favor, siga o formato (XX) XXXXX-XXXX.";
    }
}

Explicação do código

  1. Máscara de telefone (aplicarMascara):

    • A função aplicarMascara é chamada sempre que o usuário digita no campo de telefone, formatando a entrada automaticamente.

    • A função utiliza expressões regulares para remover todos os caracteres que não são números e, em seguida, aplica a máscara (XX) XXXXX-XXXX.

    • Dependendo do número de dígitos, a função aplica formatações intermediárias (por exemplo, (XX) XXXX- quando há 6 dígitos).

  2. Validação de telefone (validarTelefone):

    • A função validarTelefone é acionada quando o botão “Validar Telefone” é clicado.

    • Ela utiliza uma expressão regular (regexTelefone) que corresponde ao formato (XX) XXXXX-XXXX para verificar se o telefone inserido está no formato correto.

    • Se o número for válido, uma mensagem de sucesso é exibida. Caso contrário, uma mensagem de erro aparece.

Testando o código

Digite um número de telefone no campo. À medida que você digita, o número será automaticamente formatado para o padrão (XX) XXXXX-XXXX.

Exemplo:

Entrada: 11987654321
Resultado: (11) 98765-4321

Clique no botão “Validar Telefone”. Se o telefone estiver no formato correto, a mensagem Telefone válido! será exibida.

Se o telefone não estiver no formato correto (por exemplo, com dígitos a menos), a mensagem Número de telefone inválido. Por favor, siga o formato (XX) XXXXX-XXXX. será exibida.

Melhorias e personalizações

  • Validação com diferentes formatos: Dependendo do seu país ou região, você pode ajustar a expressão regular e a máscara para se adequar ao formato local.

  • Validação adicional: Além do formato, você pode adicionar validações mais avançadas, como verificar se o DDD é válido.

  • Máscara para outros campos: Essa mesma técnica pode ser usada para formatar outros tipos de entrada, como CPF, CNPJ, CEP, entre outros.

Aplicar uma máscara de formatação e validar números de telefone em JavaScript é uma tarefa simples que melhora a experiência do usuário e garante que os dados sejam inseridos corretamente.

Neste post, mostramos como formatar automaticamente um número de telefone e validá-lo com expressões regulares. Agora, você pode aplicar essas técnicas em seus próprios projetos para garantir uma entrada de dados mais confiável.

Dúvidas ou sugestões sobre como validar telefone e criar máscara em JavaScript? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

O seu computador está lento, travando ou dando tela azul… e você não faz ideia do que fazer?

Saiba que isso pode estar te fazendo perder dinheiro — seja com manutenção cara ou oportunidades que você está deixando passar.

Com o Super Técnico 2.0, você aprende na prática como diagnosticar defeitos, montar computadores do zero e fazer upgrades que realmente aumentam o desempenho, mesmo que você esteja começando do absoluto zero.

Você pode usar esse conhecimento para:

✔ Resolver seus próprios problemas sem depender de ninguém
✔ Ganhar dinheiro com manutenção e suporte técnico
✔ Ou até entrar de vez no mercado de TI

Tudo com aulas diretas ao ponto, sem enrolação e focadas no que realmente funciona no dia a dia.

👉 CLIQUE AQUI AGORA e veja todos os detalhes antes que essa oportunidade passe:

Super Técnico 2.0

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação e apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.