Como fazer uma simples validação com javascript
Neste tutorial, vou mostrar como validar campos de texto, número e e-mail usando #JavaScript puro.
1. Validação de Campo de Texto
Para validar um #campo de #texto (por exemplo, nome completo), queremos verificar se:
-
Não está vazio
-
Tem um comprimento mínimo
-
Não contém números ou caracteres especiais
function validarTexto(texto) {
// Verifica se está vazio
if (texto.trim() === '') {
return 'O campo não pode estar vazio';
}
// Verifica comprimento mínimo (por exemplo, 3 caracteres)
if (texto.length < 3) {
return 'O texto deve ter pelo menos 3 caracteres';
}
// Verifica se contém apenas letras e espaços
const regex = /^[a-zA-ZÀ-ÿ\s]+$/;
if (!regex.test(texto)) {
return 'O texto deve conter apenas letras';
}
return ''; // Retorna vazio se a validação passar
}
2. Validação de Campo Numérico
Para validar números (como idade ou quantidade), queremos verificar:
-
Se é realmente um número
-
Se está dentro de um intervalo válido
function validarNumero(numero, min = 0, max = 100) {
// Verifica se é um número válido
if (isNaN(numero) || numero === '') {
return 'Por favor, insira um número válido';
}
// Converte para número (importante se vier de um input text)
const num = Number(numero);
// Verifica intervalo
if (num < min || num > max) {
return `O número deve estar entre ${min} e ${max}`;
}
return ''; // Retorna vazio se a validação passar
}
3. Validação de Campo de E-mail
Para validar e-mails, usamos uma expressão regular (regex) que verifica o formato básico:
function validarEmail(email) {
// Verifica se está vazio
if (email.trim() === '') {
return 'O e-mail não pode estar vazio';
}
// Expressão regular para validar e-mail
const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!regex.test(email)) {
return 'Por favor, insira um e-mail válido';
}
return ''; // Retorna vazio se a validação passar
}
4. Implementação Prática com HTML
Aqui está um exemplo de como usar essas funções com um formulário HTML:
<form id="meuFormulario">
<div>
<label for="nome">Nome:</label>
<input type="text" id="nome">
<span id="erroNome" class="erro"></span>
</div>
<div>
<label for="idade">Idade:</label>
<input type="number" id="idade">
<span id="erroIdade" class="erro"></span>
</div>
<div>
<label for="email">E-mail:</label>
<input type="email" id="email">
<span id="erroEmail" class="erro"></span>
</div>
<button type="submit">Enviar</button>
</form>
<script>
document.getElementById('meuFormulario').addEventListener('submit', function(event) {
event.preventDefault(); // Evita o envio do formulário
// Obtém os valores
const nome = document.getElementById('nome').value;
const idade = document.getElementById('idade').value;
const email = document.getElementById('email').value;
// Valida os campos
const erroNome = validarTexto(nome);
const erroIdade = validarNumero(idade, 1, 120);
const erroEmail = validarEmail(email);
// Exibe os erros
document.getElementById('erroNome').textContent = erroNome;
document.getElementById('erroIdade').textContent = erroIdade;
document.getElementById('erroEmail').textContent = erroEmail;
// Se não houver erros, envia o formulário
if (!erroNome && !erroIdade && !erroEmail) {
this.submit();
}
});
</script>
Validação em tempo real: Você pode usar o evento input
para validar enquanto o usuário digita:
document.getElementById('email').addEventListener('input', function() {
const erro = validarEmail(this.value);
document.getElementById('erroEmail').textContent = erro;
});
Adicione CSS para destacar os campos inválidos:
.erro {
color: red;
font-size: 0.8em;
}
input.invalido {
border: 1px solid red;
}
Validação HTML5: Use os atributos nativos como complemento:
<input type="email" required minlength="3" max="120">
Estas são apenas dicas básicas inicias para uma simples validação de dados. É importante mantes validações extras como validação do lado servidor.
Compartilhe este artigo: