Remover caracteres especiais com JavaScript

Postado em 29. ago, 2011 por em Tudo sobre Tecnologia

Utilizando o evento onKeyUp (Executa um código JavaScript quando o usuário libera uma tecla que foi pressionada), criei uma função que varre a string digitada e remove o caracter desejado, desde de que o mesmo esteja declarado dentro do Replace da função. Poderiamos ter criado uma função que não permitisse digitar determinado caracter, porem existe um problema quanto ao bloqueio de teclas e manter o campo 100% navegável. Para cada caso existe uma necessidade, neste caso deixo o usuário digitar e assim que a tecla é pressionada removo o caracter indesejado.

Para utilizar a função basta declarar o evento “onKeyUp” diretamente no TextBox ou no behind adicionando um atributo ao campo. Abaixo estão as duas maneiras:

Declarando diretamente no TextBox:

<asp:Label ID="lblCaracterEspecialJS" runat="server" Text="Remover Caracteres Especiais com JS - [Proibidos: [-[\]{}()*+?%&amp;amp;amp;amp;amp;@!?¨_:;'<>/=\\^$|#\b]"></asp:Label>
<br />
<asp:TextBox ID="txtCaracterEspecialJS" runat="server" onKeyUp="return limpaCaractereEspecial(this.id)"></asp:TextBox>

Adicionando o evento onKeyUp como atributo ao campo, no evento Page_Load da página:

protected void Page_Load(object sender, EventArgs e)
{
txtCaracterEspecialJS.Attributes.Add("onKeyUp", "javascript:return limpaCaractereEspecial(this.id);");
}

Agora a declaração da função JavaScript:

<script type="text/javascript">
function limpaCaractereEspecial(field) {
field = document.getElementById(field);
document.getElementById(field.id).value = document.getElementById(field.id).value.replace(/[-[\]{}()*+?%&amp;amp;amp;amp;amp;@!?¨_:;'"<>/=\\^$|#\b]/g, "");
}
</script>

Reparem que passo “this.id” no evento “onKeyUp” e depois dentro do função “limpaCaractereEspecial()” recebo o id na variável field, isto para re-utilizar a função em outros campos depois. Eu poderia mudar o método para não receber nenhuma informação, e dentro dele fazer um getElementById() diretamente no campo, porem isto deixaria meu código travado e se precisasse utilizar em mais campos, precisaria de uma função para cada campo.

Até a próxima.

Saiba mais sobre JavaScript – Controladores de eventos

Tags: ,

Deixe um comentário

You must be logged in to post a comment.