Impedir usuário de colar caracteres especiais com JavaScript
Neste artigo você vai aprender a como impedir usuário de colar caracteres especiais, utilizando JavaScript e seus eventos de DOM

Conteúdo também disponível em vídeo:
Fala programador(a), beleza? Bora aprender mais sobre JavaScript, DOM e bloqueio de certos caracteres.
O ato de colar pode ser resgatado como um evento também, que é o paste
Porém neste caso, vamos precisar esperar um pouco para ver o conteúdo digitado pelo usuário
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Já que ele é colado em um input de texto, então vamos utilizar a função de setTimeout para fazer este aguardo
Com uma expressão regular vamos identificar os caracteres especiais e não permitir que eles sejam digitados
Veja o exemplo prático:
<input type="text" name="name" id="name">
Vamos trabalhar com este HTML apenas, pois precisamos somente de um input para concluir o exemplo
Normalmente você terá uma estrutura de formulário HTML mais complexa
Agora veja o código JavaScript:
var input = document.querySelector("#name");
input.addEventListener("paste", function () {
var regex = new RegExp("^[ 0-9a-zA-Z\b]+$");
var self = this;
setTimeout( function(){
var text = self.value;
if(!regex.test(text)) {
self.value = "";
}
}, 10);
});
Vamos verificar o que acontece neste código, linha a linha
Primeiramente mapeamos o input que queremos prevenir de caracteres especiais, e adicionamos um evento nele, com addEventListener
O evento é o paste, vamos estar observando quando o usuário cola algo neste input
Depois em regex criamos nossa expressão regular, que não permite caracteres especiais e também mapeamos o this em self
Isso será necessário para poder resgatar os dados do input dentro de setTimeout, esta função foi utilizada para poder esperar o texto cair no input e aí sim validarmos
Veja que o tempo imposto é muito pequeno, apenas 10 milissegundos, porém são suficientes
Por fim validamos a expressão regular com o texto colado no input, caso haja algum caractere especial removemos o texto
Fazemos a remoção com a propriedade value, que corresponde ao texto do input
E então o problema está resolvido, o input não aceita mais caracteres especiais!
Conclusão
Neste artigo vimos como impedir usuário de colar caracteres especiais
Utilizamos o evento paste, para mapear a ação de colar no input alvo
Depois passamos o texto do input em uma expressão regular, que valida se ele possui algum caractere inválido
Se positivo, removemos o texto por completo do input
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube
Formações
Formação SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
Blog | Mais populares
As diferenças de var, let e const
Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]
ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]

Legal essa regex, mas como eu poderia fazer para que aceitasse palavras acentuadas e ‘ç’ ?