Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

SinoP

Função para remover acentos de string.

Recommended Posts

Boa tarde pessoal.

 

Estou com dificuldades em substituir os acentos por caracteres normais em minha função.

 


function removeAcentos(palavra){
       //DEFINO A VARIAVEL PALAVRA COMO SENDO UMA STRING
palavra = new String(palavra);

       //CRIO UM ARRAY COM TODOAS AS LETRAS QUE DESEJO SUBSTITUIR
com_acento = new Array("á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç", "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç");

       //CRIO UM ARRAY COM TODAS AS LETRAS SUBSTITUTAS
sem_acento = new Array("a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c", "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C");

       //CRIO A NOVA VARIAVEL QUE SERA A PALAVRA SEM ACENTOS
nova='';

       //EXECUTO UM FOR PARA PEGAR LETRA POR LETRA DA PALAVRA
for(i=0;i<palavra.length;i++) {

               //ESTA VARIAVEL SERA USADA POSTERIORMENTE
	gravou="";

               //PEGO A LETRA
	letra = palavra.substr(i,1);

               //EXECUTO UM LOOP PARA COMPARAR A LETRA PEGA COM AS LETRAS QUE DESEJO SUBSTITUIR
	for(x=0;x<46;x++){

                       //VERIFICO SE A LETRA EM QUESTAO ESTA NA ARRAY DE LETRAS QUE DESEJO SUBSTITUIR
		if(letra==com_acento[x]){

                               //SE A LETRA ESTIVER NA ARRAY QUE DESEJO SUBSTITUIR EU ACRESCENTO A LETRA DA ARRAY SUBSTITUTA
			nova+=sem_acento[x];

                               //ESTA VARIAVEL SERVE DE VERIFICADOR
			gravou="ok";

		}
	}

               //SE A VARIAVEL GRAVOU É DIFERENTE DE ok
	if(gravou!="ok"){

                       //ADICIONO A LETRA ATUAL A NOVA VARIAVEL
		nova+=letra;
	}
}

       //RETORNA A NOVA VARIAVEL
return nova;
}


alert(removeAcentos('ÁÉÍÓÚ'));

 

É isso ai pessoal. Minha função aparentemente esta correta mas não consegui identificar o porque que ela não consegue substituir as letras.

 

Se a palavra for passada direto pelo JS como coloquei no código acima a função executa normalmente.

Mas como estou utilizando uma palavra vinda de um campo input a função não executa.

 

Preciso da ajuda de vocês.

 

Qualquer dúvida estamos aqui.

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se a função funciona isoladamente, então o seu problema pode estar sendo na chamada do input.

 

como você faz ela lá ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.