Ir para conteúdo

Arquivado

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

Thiago Mascarenhas

Separando e exibindo string

Recommended Posts

Bom dia gente estou com um problema por aqui e gostaria da ajuda de vocês, estou usando uma API para consultar informações sobre o CEP,  porém preciso separar uma informações antes de exibi-las em campos diferentes. Vou postar o código abaixo, ele funciona apos o usuário preencher o cep, pegando as informações e mostrando nos campos refentes do formulário.

 

<script type="text/javascript">
jQuery(function($){
   $("#cep").change(function(){
      var cep_code = $(this).val();
      if( cep_code.length <= 0 ) return;
      $.get("http://apps.widenet.com.br/busca-cep/api/cep.json", { code: cep_code },
         function(result){
            if( result.status!=1 ){
               alert(result.message || "Houve um erro desconhecido");
               return;
            }
            $("input#endereco").val( result.address );
         });
   });
});
</script>

 

<form action="checkout-sample" method="POST">

    CEP: <input type="text" name="cep" id="cep" />

    Tipo de logradouro: <input type="text" name="tipoEndereco" id="tipoEndereco" />
    Logradouro: <input type="text" name="endereco" id="endereco" />

</form>

 

O que acontece é que o result.address retorna uma string no padrão "AAAA BBBB BBBBB BBB - CCCCC "

e preciso exibir a primeira parte (AAAAA - Que sempre estará antes do primeiro espaço) no campo "tipoEndereco"

e do restante retirar tudo que estiver após "-" exibindo no campo endereço somente a parte "BBBB BBBB BBBB"

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

o espaço -> (" ")

https://www.w3schools.com/jsref/jsref_split.asp

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/split

var str = "How are you doing today?";
var res = str.split(" ");
res[0]; //bom aqui agora vão ter todos as palavras separadas pelo espaço, divididas em array (0,1,2,3,4 e 5)
//para este exemplo em questão pegamos a chave 0(zero) que é a primeira palavra "How"
console.log(res[0]);

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
31 minutos atrás, Thiago Mascarenhas disse:

Sim sim, , + meu problema e que preciso pegar somente a primeira palavra antes do " " e separar novamente o que sobrar, pegando somente o que estiver antes do "-"

Caro colega, você testou o código que lhe enviei?

a parte:

var CEP = spl[0];//aqui é justamente o que você quer (o AAAAA)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, testei sim e até ai funcionou direitinho, deixa eu tentar me explicar melhor, alem dessa primeira parte (AAAA), preciso pegar o que sobra (BBBB BBBBB BBB - CCCCC) e ficar tb com um segundo bloco que seria o BBBB BBBBB BB. Ou seja da string inicial preciso pegar so a primeira palavra antes do espaço para um imput e para outro tudo que anteceder o ultimo "-", a minha dificuldade está exatamente ai, em pegar esse segundo bloco de informações.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Citar
2 horas atrás, Thiago Mascarenhas disse:

Oi, testei sim e até ai funcionou direitinho, deixa eu tentar me explicar melhor, alem dessa primeira parte (AAAA), preciso pegar o que sobra (BBBB BBBBB BBB - CCCCC) e ficar tb com um segundo bloco que seria o BBBB BBBBB BB. Ou seja da string inicial preciso pegar so a primeira palavra antes do espaço para um imput e para outro tudo que anteceder o ultimo "-", a minha dificuldade está exatamente ai, em pegar esse segundo bloco de informações.

 

Mesmo processo

//EXEMPLO:
//AAAA BBBB CCC - DDDDD
var spl = result.address.split(' ');
var a = spl[0]; //AAAA
var b = spl[1]; //BBBB
var c = spl[2]; //CCC
var d = spl[3]; //-
var e = spl[4]; //DDDDD

 

assim por diante

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, primeiramente obrigado pela sua disponibilidade em me ajudar.

Seu exemplo esta funcionando perfeitamente, porém a minha dificuldade ainda persiste no fato de que, a primeira parte AAA é uma palavra unica então ela vai estar sempre no sp1[0] até ai não há problema. porém após ela virão varias palavras antes do separador "-". 

então o problema é que apos pegar o sp[0] para uma variavel, preciso pegar dos os vetores (que podem ser 1,2,3, 4,....) que venha antes do caracter "-".

o meu problema é justamente esse como isolar esse bloco de informações. Ilustrando no seu exemplo seria isso :

 

campo1 = spl[0]; //AAAA

campo2 = spl[1]; spl[2];......  //BBBB CCC - Porém como falei essa quantidade antes do "-" é variavel.

 

novamente, obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode separar a string pelo "-" (traço)

var spl = result.address.split('-');

Bom agora você tem um array com duas chaves
 

var string = "AAAA BBBB CCCC DDDD - EEE";
var spl = string.split("-");//dividindo a string em 2 partes
var antesDoTraco = spl[0];//antes do traço (AAAA BBBB CCCC DDDD)
var depoisdoTraco = spl[1];//depois do traço (EEE)
var separacao = antesDoTraco.split(" ");//agora dividindo as palavras (AAAA, BBBB, CCCC, DDDD)
separacao[0];//AAAA
separacao[1];//BBBB
separacao[2];//CCCC
separacao[3];//DDDD

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 horas atrás, Thiago Mascarenhas disse:

Amigo, primeiramente obrigado pela sua disponibilidade em me ajudar.

Seu exemplo esta funcionando perfeitamente, porém a minha dificuldade ainda persiste no fato de que, a primeira parte AAA é uma palavra unica então ela vai estar sempre no sp1[0] até ai não há problema. porém após ela virão varias palavras antes do separador "-". 

então o problema é que apos pegar o sp[0] para uma variavel, preciso pegar dos os vetores (que podem ser 1,2,3, 4,....) que venha antes do caracter "-".

o meu problema é justamente esse como isolar esse bloco de informações. Ilustrando no seu exemplo seria isso :

 

campo1 = spl[0]; //AAAA

campo2 = spl[1]; spl[2];......  //BBBB CCC - Porém como falei essa quantidade antes do "-" é variavel.

 

novamente, obrigado pela ajuda.

JÁ VIU A RESPOSTA ACIMA?

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, quimera disse:

JÁ VIU A RESPOSTA ACIMA?

Oi vi agora, mas como posso juntar as variáveis

separacao[1];//BBBB
separacao[2];//CCCC
separacao[3];//DDDD

e sendo que podem ter mais, pois o numero de vetores ira variar bastante. Um exmeplo real do retorno que recebo:

 

Travessa Padre Eutíquio - de 674

 

o resultado final que preciso é 

 

v1 = Travessa

v2 = Padre Eutíquio

 

Mas como mencionei esta parte do "meio" varia em quantidade.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

véi, se você precisa só do que vem antes do traço,a resposta ja esta aí.

pois o que você precisa é só esse trecho do código que enviei:

var antesDoTraco = spl[0];//antes do traço (AAAA BBBB CCCC DDDD)

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 28/06/2017 at 00:21, quimera disse:

véi, se você precisa só do que vem antes do traço,a resposta ja esta aí.

pois o que você precisa é só esse trecho do código que enviei:


var antesDoTraco = spl[0];//antes do traço (AAAA BBBB CCCC DDDD)

 

 

Você não me entendeu totalmente, antes do traço é só parte do problema.

Após tirar a parte antes do traço (como no exemplo que você postou acima), preciso separar novamente em SOMENTE DUAS PARTES para setar em uma campo. tendo como resultado

 

var [0] AAAA

var [1] BBBB CCCC DDDD

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 horas atrás, Thiago Mascarenhas disse:

 

Você não me entendeu totalmente, antes do traço é só parte do problema.

Após tirar a parte antes do traço (como no exemplo que você postou acima), preciso separar novamente em SOMENTE DUAS PARTES para setar em uma campo. tendo como resultado

 

var [0] AAAA

var [1] BBBB CCCC DDDD

 

você precisa dividir em duas partes mesmo que sejam 4 palavras?

Fica complicado mesmo te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites
18 horas atrás, quimera disse:

você precisa dividir em duas partes mesmo que sejam 4 palavras?

Fica complicado mesmo te ajudar.

 

isso mesmo, ai é o ponto onde complicou a vida, e para piorar nem sempre serão 4 palavras, podem ser mais... podem ser menos....

 

Mas valeu, te agradeço por ter tentado, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, dá alguns exemplos de como virá a informação, assim fica mais fácil de entender, somente com "AAA BBB CCC - DDD" e que virão várias palavras fica muito abstrato

Compartilhar este post


Link para o post
Compartilhar em outros sites
21 horas atrás, Pita disse:

Cara, dá alguns exemplos de como virá a informação, assim fica mais fácil de entender, somente com "AAA BBB CCC - DDD" e que virão várias palavras fica muito abstrato

var string = "Rua Anita Ferraz, 144 Sé - 01505010"; 

//dividindo a string em 2 partes (dividindo pelo traço)
var spl = string.split("-");

//antes do traço (Rua Anita Ferraz, 144 Sé) 
var antesDoTraco = spl[0];

//depois do traço (01505-010) 
var depoisdoTraco = spl[1];

//agora dividindo as palavras (Rua, Anita, Ferraz, 144, Sé)
var separacao = antesDoTraco.split(" ");// (dividindo pelo espaço)

separacao[0];//Rua 
separacao[1];//Anita 
separacao[2];//Ferraz
separacao[3];//144
separacao[4];//Sé
depoisdoTraco;//01505-010

Agora estou usando palavras e CEP... mais mastigado que isso só se eu engolir e cagar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, se você começar dividindo por "-" no começo ele irá te retornar um arrai com 3 posições e não 2, porque o CEP tb tem um traço.

 

Acho que o melhor neste caso é dividir por espaço e depois sair olhando cada posição do array retornado se tem um traço dentro e o tamanho tiver 9 caracteres, este é seu CEP, o resto é endereço

Algo +/- assim:

 

var strEnd = "Rua Anita Ferraz, 144 Sé - 01505-010"; 
var arrEndereco = strEnd.split(" ");// (dividindo pelo espaço)
var iTamanho = arrEndereco.length;

var strCEP = "";
var strEndereco = "";

for(var i = 0; i < iTamanho; i++){
	if(arrEndereco[i].indexOf("-") >= 0 && arrEndereco[i].length == 9){
  	strCEP = arrEndereco[i];
  }else{
    strEndereco += arrEndereco[i]+" ";
  }
}
alert(strEndereco);
alert(strCEP)

 

 

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.