Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Validação Como impedir que o usuário digite dados inválidos?

Qual é o melhor jeito de validar o que o usuário digita por exemplo, impedir letras quando o esperado são números?

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta
solução!

Oii, Pedro!

Ótima dúvida, essa é uma das partes mais importantes da programação: validar a entrada de dados para evitar erros e comportamentos inesperados.

Vamos ver algumas formas:

  1. Usando isNaN() para verificar se o valor é um número

Se você pedir um número e quiser ter certeza de que o usuário não digitou letras, pode usar isNaN() (“is Not a Number”).

let numero = prompt("Digite um número:");

if (isNaN(numero)) {
  console.log("Valor inválido! Você deve digitar apenas números.");
} else {
  console.log("Número válido:", numero);
}

Como funciona:

  • A função isNaN() retorna true se o valor não for um número.
  • Assim, você pode exibir uma mensagem de erro e pedir novamente até o usuário digitar corretamente.
  1. Usando laços para forçar uma entrada válida

Você pode combinar while com validação para impedir o avanço do programa enquanto o dado for inválido:

let numero;

do {
  numero = prompt("Digite um número:");
} while (isNaN(numero) || numero === "");

console.log("Número válido:", numero);

Explicação:
O laço do...while continua repetindo até o usuário digitar um número válido (ou seja, até isNaN(numero) ser false).

  1. Usando expressões regulares (RegExp)

Expressões regulares são muito úteis para validar formatos específicos, como números, e-mails ou CEPs.

Exemplo para permitir apenas números:

let entrada = prompt("Digite um número:");

if (!/^[0-9]+$/.test(entrada)) {
  console.log("Digite apenas números!");
} else {
  console.log("Entrada válida:", entrada);
}

Como funciona:

  • O padrão /^[0-9]+$/ significa “somente dígitos de 0 a 9”.
  • O método .test() retorna true se a string corresponder à regra.
  1. Em formulários HTML

Se estiver trabalhando com HTML, você pode restringir o tipo de entrada diretamente no campo:

<input type="number" id="idade" placeholder="Digite sua idade">

E ainda validar com JavaScript:

const idade = document.getElementById("idade");

idade.addEventListener("input", function() {
  if (idade.value < 0) {
    alert("A idade não pode ser negativa!");
    idade.value = "";
  }
});

Espero ter ajudado.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!