1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Jquery parseInt , retirar letras e deixar o número.

Discussão em 'Programação' iniciada por casser, 25 de Junho de 2012. (Respostas: 7; Visualizações: 1586)

  1. casser

    casser Power Member

    Boas..

    Tenho uma série de campos (ola) que tem a mesma estrutura "Mx 2", o "x" pode ser "A" ou "B". O que pretendo fazer é retirar as letras, ficando a variável apenas com o número.

    A linha de baixo funciona bem, mas apenas para "MA 2", quando chega a "MB 2" obtenho "null".
    Código:
    var teste = parseInt(/MA (\d+)/.exec(ola)[1], 10);
    
    Como é que posso fazer /MA ou /MB?

    Agradeço ajuda, que já perdi umas belas horas nisto:P
     
  2. ByMySlf

    ByMySlf Power Member

    A função parseInt é JavaScript nativo! JavaScript não é só jQuery.

    Fiz apenas uma alteração ao teu código e um teste rápido na consola do Chrome, portanto, verifica se é o que pretendes.

    Código:
    parseInt(/M[A,B] (\d+)/.exec('MB 2')[1], 10);
     
    Última edição: 25 de Junho de 2012
  3. casser

    casser Power Member

    Era isso mesmo que pretendia! Obrigado :)

    Eu bem que tentei com virgula, mas não fazia a mínima em usar os parêntesis rectos.
     
  4. casser

    casser Power Member

    Já acabei o código e funciona correctamente no Firefox, mas no Chrome e Opera não funciona, mas o problema não tem nada haver com o que pedi nos posts anteriores.


    Cheguei à conclusão que o problema está aqui:
    Código:
    var tt = $(this).find("asd\\:zxcv").text();
    Isto faz parte de uma função que vai buscar a um XML alguns valores.. no XML tenho:
    Código:
    <asd:zxcv>123</asd:zxcv>
    Se retirar os ":" do XML e do código, funciona perfeitamente no Chrome..por isso acredito que o problema na forma como comento os ":". Como posso retirar aqueles ":"?
     
  5. ImAnAlcoholic

    ImAnAlcoholic Power Member

    O simples facto de estares a usar XML fascina-me
    ainda assim o teu código funciona na perfeição em Opera, Chrome e Firefox em MacOSX.

    De certeza que é esse bocado de código que está a dar problemas?
     
  6. patCRUZ

    patCRUZ Power Member

    Já agora porquê?
    Por não estar a usar antes JSON?
     
  7. casser

    casser Power Member

    O objectivo é carregar XML de vários sites e colocar cada "item" no Google Maps V3 como marcador. Existe outras formas muito mais simples de carregar XML no Google Maps (GeoXML3, ou Layer), mas desta forma posso personalizar e controlar muito mais o XML.

    Criei um versão muito simplificada do meu código que acontece o mesmo erro:
    http://dl.dropbox.com/u/15802004/teste.zip

    Agradecia se alguem puder dar uma vista de olhos:
    -Para carregar os marcadores, é necessário clicar no botão "teste".
    -Da forma que o código está, os marcadores são carregados perfeitamente no Firefox e IE, mas não no Chrome e Opera. Para solucionar o problema tenho que ir ao XML e editar o campo <geo:lat> e <geo:long> (latitude e longitude) e retirar os dois pontos. Assim funciona perfeitamente em qualquer browser.
    -Para recriar o meu problema, basta:

    Código:
        //url: "teste1.xml",     
          url: "teste2.xml",
    
    (e...)        
    
        //var lat = $(this).find("geo\\:lat").text();            
       //var lng = $(this).find("geo\\:long").text();             
          var lat = $(this).find("geolat").text();             
          var lng = $(this).find("geolong").text();
    Provavelmente é uma falha muito simples, mas não consigo resolver..
     
    Última edição: 27 de Junho de 2012
  8. casser

    casser Power Member

    Não consegui resolver aquele "bug"..

    A solução para o meu problema passou por usar PHP para retirar os ":" do XML.
     

Partilhar esta Página