Removendo Acentos e Cedilha no ActionScript 3

Olá,

Farei um post breve, só para movimentar um pouco este espaço que está bem parado ultimamente.
Passei por um pequeno probleminha na geração de um arquivo que não permite o uso de acentos e do cedilha.
Pesquisei um pouco e achei muitas soluções em Java/PHP e senti um pouco de falta de uma implementação simples usando o AS3, que é com que eu estou trabalhando ultimamente já que há 3 meses me tornei um Flex Developer(urgh!).


Bem, como a string que eu vou manipular sempre está em uppercase eu tratei apenas os caracteres maiúsculos. Então brincando um pouquinho com a classe RegExp e a classe String do AS3 o meu método foi implementado da seguinte forma:

function removerAcentuacao(texto:String):String{
	var letrasSubstitutas:Array = new Array("A", "E", "I", 
                                                "O", "U", "Ç");
	var padraoDeSubstituicao:Array = new Array();
				
	padraoDeSubstituicao[0] = new RegExp("[ÁÀÃÂÄ]", "g");
	padraoDeSubstituicao[1] = new RegExp("[ÉÈÊË]", "g");
	padraoDeSubstituicao[2] = new RegExp("[ÍÌÏÎ]", "g");
	padraoDeSubstituicao[3] = new RegExp("[ÓÒÕÔÜ]", "g");
	padraoDeSubstituicao[4] = new RegExp("[ÚÙÜÛ]", "g");
	padraoDeSubstituicao[5] = new RegExp("Ç", "g");
				
	for(var int:Number = 0; padraoDeSubstituicao.length; i++){
		texto = texto.replace(padraoDeSubstituicao[i], 
                                        letrasSubstitutas[i]);
	}
				
		return texto;
}

Primeiro definimos o array com as expressões regulares que serão usadas para que os caracteres encontrados no texto sejam substituídos.

O essencial do algortimo está dentro do laço for. A cada iteração é verificado o se existe alguma ocorrência do padrão definido no array padraoDeSubstituicao dentro do texto passado como parâmetro, e caso ocorra este é substituído pela letra correspondente.

Pela documentação do construtor da classe RegExp quando usamos a flag “g” no segundo parâmetro, estamos avisando para o método replace da classe String que todas as ocorrências devem ser substituídas e não só a primeira.

Simples, não? 😀
_

Em breve prometo postar algo mais legal.
Até a próxima!

Deixe um comentário