Retirar Acentos com JavaScript

Agência OFF, desenvolvimento de soluções web para as Agências Digitais

Esta função simples serve para retirar os acentos do campo, mais ele não retira na hora que você está digitando e sim quando você tira o foco do campo, sendo assim a função é acionada.

aqui abaixo segue o script desenvolvido em javascript retirado da internet e adaptado.


<script language="javascript">
function retirarAcento(objResp) {
var varString = new String(objResp.value);
var stringAcentos = new String('àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ');
var stringSemAcento = new String('aaeouaoaeioucuAAEOUAOAEIOUCU');

var i = new Number();
var j = new Number();
var cString = new String();
var varRes = '';

for (i = 0; i < varString.length; i++) {
cString = varString.substring(i, i + 1);
for (j = 0; j < stringAcentos.length; j++) {
if (stringAcentos.substring(j, j + 1) == cString){
cString = stringSemAcento.substring(j, j + 1);
}
}
varRes += cString;
}
objResp.value = varRes;
}
</script>

 

aqui abaixo segue um “form” simples só para teste com o comando “onChange” que contém um javascript para acionar a função “retirarAcento”


<form>
<input type="text" name="Teste" onChange="javascript:retirarAcento(this);">
</form>

Acesse também: Webly

Agência OFF, desenvolvimento de soluções web para as Agências Digitais


Tags:

9 Respostas para Retirar Acentos com JavaScript

  1. Com jQuery, aplica em todos os textBox

    function noTilde(objResp) {
    var varString = new String(objResp.value);
    var stringAcentos = new String(‘àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ[]‘);
    var stringSemAcento = new String(‘aaeouaoaeioucuAAEOUAOAEIOUCU’);

    var i = new Number();
    var j = new Number();
    var cString = new String();
    var varRes = ”;

    for (i = 0; i < varString.length; i++) {
    cString = varString.substring(i, i + 1);
    for (j = 0; j < stringAcentos.length; j++) {
    if (stringAcentos.substring(j, j + 1) == cString){
    cString = stringSemAcento.substring(j, j + 1);
    }
    }
    varRes += cString;
    }
    objResp.value = varRes;
    }
    $(function() {
    $(“input:text”).keyup(function() {
    noTilde(this);
    });
    });

  2. o problema é se eu não precisar colocar em todos os campo, melhor adaptar isso com alguma classe ou com alguma ID, mais é uma boa idéia!

  3. Thank you vert much!!!!!!!!!!!!!
    E dá-lhe Sport Club Internacional!!!!
    O ÚNICO CAMPEÃO DE TUDO!!!!!!

  4. Thank you very much!!!!!!!!!!!!!
    E dá-lhe Sport Club Internacional!!!!
    O ÚNICO CAMPEÃO DE TUDO!!!!!!

  5. Estou com um sistema de retirar ascentos semelhante a este ae, porem não funciona no Chrome, queria saber. o De vocês ai funciona no Chrome? – Deixa explicar o problema, no chrome ele duplica as vogais, ja as consoantes(claro não levam ascentos) não duplica… como resolver tal dilema?

    Agraceço!

  6. Bom Dieggo, o dilema só pode ser resolvido se eu conseguir enxergar o código, mais esse que tenho ai funciona no Chrome!

    Abraços!

  7. Obrigado Rodrigo!!!

    parabéns pelo código

  8. Estou tentando utilizar sua funcao e o retorno que estou tendo é undefined, tem aguma sugestão?
    $(document).ready(function() {
    $(” select[name=categorias]“).change(function() {
    var opcao = $(this).find(“option:selected”).text();
    opcao = noTilde(‘opcao’);
    alert(opcao);
    });
    });
    function noTilde(objResp) {
    var varString = new String(objResp.value);
    var stringAcentos = new String(‘àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ[]‘);
    var stringSemAcento = new String(‘aaeouaoaeioucuAAEOUAOAEIOUCU’);

    var i = new Number();
    var j = new Number();
    var cString = new String();
    var varRes = ”;

    for (i = 0; i < varString.length; i++) {
    cString = varString.substring(i, i + 1);
    for (j = 0; j < stringAcentos.length; j++) {
    if (stringAcentos.substring(j, j + 1) == cString){
    cString = stringSemAcento.substring(j, j + 1);
    }
    }
    varRes += cString;
    }
    objResp.value = varRes;
    }

  9. Fiz algumas alterações no script, estava retornando undefined conforme citado pelo Fernando Villela, testei no firefox e chrome, segue:

    function noTilde(palavra) {
    var varString = palavra;
    var stringAcentos = new String(‘àâêôûãõáéíóúçüÀÂÊÔÛÃÕÁÉÍÓÚÇÜ[]‘);
    var stringSemAcento = new String(‘aaeouaoaeioucuAAEOUAOAEIOUCU’);
    var cString = new String();
    var varRes = ”;

    for (i = 0; i < varString.length; i++) {
    cString = varString.substring(i, i + 1);
    for (j = 0; j < stringAcentos.length; j++) {
    if (stringAcentos.substring(j, j + 1) == cString){
    cString = stringSemAcento.substring(j, j + 1);
    }
    }
    varRes += cString;
    }
    return varRes;
    }

Deixe seu Comentário