• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Hubo Robonaught

Limpar String

7 mensagens neste tópico

Daí galera, dessa vez é o seguinte: Eu tenho uma string "suja" e gostaria de limpa-la..

String: ",DOS,ILHÉUS,,,,,,,"

Eu gostaria de tirar as virgulas(,) da string mas sem que o espaço entre "DOS" e "ILHÉUS" fosse tirado.

:wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tentei, mas ele da um erro dizendo que tempArr.replace() não é uma função.

aqui está o codigo, não sei por que o replace não tira as virgulas..

function teste(){
var ENDERECO = "PRAÇA DOS ILHÉUS, Nº142: - APARTAMENTO; 905"
var NUMERO = "";
var NOCOMPLEMENTO ="";
var LOGRADOURO = "";
var endereco = ENDERECO;
var posicao=0;
var escolhido=0;
var i=0;
var j=0;
var temp="";
var tempNum = 0;
var tempComp = "";
var Logradouro; 
var Numero;
var Complemento;
Logradouro = { "RUA":true ,"ROD":true,"R.":true,"AL":true,"ALAMEDA":true,"RODOVIA":true,
"PRAÇA":true,"ESTRADA":true,"CHACARA":true,"VIADUTO":true,"VALE":true,"VIA":true,"PARQUE":true,"VILA":true,"PONTE":true };
Numero = {"N":true , "NUMERO":true , "NUM":true , "NO":true};
        Complemento = {"AP":true , "APARTAMENTO":true , "LJ":true , "APTO":true , "QD":true };

temp= endereco.replace("-", " ");
temp= temp.replace(".", " ");
temp= temp.replace("º", " ");
temp= temp.replace(":", " ");
temp= temp.replace(";", " ");
temp= temp.replace("°", " ");
temp= temp.replace("_", " ");
temp= temp.replace(",", " ");

alert(temp);

tempArr = temp.split(" ");	
for ( i=0; i < tempArr.length; i++){			
	tmp=tempArr[i];

	//DESCOBRINDO O LOGRADOURO, APARTIR DE UMA LISTA DE LOGRADOUROS
	if( Logradouro[tmp] ){

			tempArr[i] = tempArr[i].replace(tmp,"");
			LOGRADOURO = tmp;

	}

	// DESCOBRINDO NÚMERO
	if( Numero[tmp] ){
		escolhido=1;
		posicao = i;
		tempNum=tempArr[posicao+1];
		if ((tempNum.charAt(0)) == 1||2||3||4||5||6||7||8||9||0){
			tempArr[posicao+1]=tempArr[posicao+1].replace(tempNum, "");
		}
		tempArr[posicao]=tempArr[posicao].replace(tmp, "");
		NUMERO = tempNum;
	}

	//DESCOBRINDO COMPLEMENTO 
	if( Complemento[tmp] ){
		posicao =i;
		tempComp=tempArr.slice(posicao);
		var iComp =0;
		while(iComp < tempComp.length){
			tempArr[posicao]=tempArr[posicao].replace(tempComp[iComp], "");
			iComp=iComp+1;
			posicao=posicao+1;
		}
		NOCOMPLEMENTO = tempComp;
	}
}
        ENDERECO= tempArr.replace(",", " "); //o erro ocorre aqui
        alert("Endereço: \n\n" + ENDERECO);

}


0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

será que as virgulas estão aparecendo por que eu dei um split na string? :hmm:

se for, como faço pra que não apareçam?

sds. 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

if ((tempNum.charAt(0)) == 1||2||3||4||5||6||7||8||9||0){

Isto é válido sequer?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Válido é, mas retorna true se o charAt(0) for 1 e dois nos restantes casos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e em relação a minha dúvida? alguém sabe como posso fazer pra não aparecer as virgulas? ou então limpá-las no fim? Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora