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

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
 
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:
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);

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.
 
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 ":"?
 
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?
 
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?

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:
Back
Topo