2012-04-07 28 views
3

Ich versuche, bestimmte Zahlen aus einer Zeichenfolge zu extrahieren, aber ich bin mir nicht sicher, wie Sie es ausführen.Javascript - extrahiere bestimmte Zahlen aus der Zeichenfolge

Der String ist von der Form:

center=43.571464,7.129565&zoom=12&size=480x225&markers=color:red%7Clabel:1%7C43.580293713725936,7.115145444335894&markers=color:red%7Clabel:2%7C43.56512073056565,7.121668576660113&sensor=false 

Das Array ich will, ist die Markierung in der Nähe der Endkoordinaten, speziell:

[43.580293713725936,7.115145444335894,43.56512073056565,7.121668576660113] 

Ich dachte, ich diese Nummer wählen konnte, um ihre Präzision mit (15) Aber ich weiß nicht, ob das das Beste ist. Ich bin ein Hack, wenn es darum geht, reguläre Ausdrücke zu verwenden. Das beste, was ich habe ist:

str.match(/[-+]?[0-9]*\.?[0-9]+/g) 

Aber das gibt mir nur alle Zahlen.

Hilfe sehr geschätzt!

Antwort

1

Wenn Ihre Zeichenfolge in str ist, verwenden Sie diese Regex.

var coordinates = decodeURIComponent(str).match(/([\d.]{10,})/g); 

http://jsfiddle.net/CHfcT/

1

Sie könnten versuchen, die mit folgenden regex

/\d+\.\d{7,}/g 

Dies setzt voraus, dass:

  • Der Marker-Koordinaten haben immer 7 oder mehr Zahlen nach dem Punkt
  • Kein anderer Teil des stri ng enthält ein ähnliches Muster mit mehr als 7 Zahlen nach einem Punkt

Beispiel (JSFiddle):

str.match(/\d+\.\d{7,}/g); 

Der Grund nahm ich 7 war, weil die anderen Zahlen in der Probe 6 hatten, so daß ausschließen Sie. Wenn Sie wissen, dass die Koordinaten immer eine feste Anzahl von Dezimalstellen haben, dann verwenden Sie könnten nur, dass bestimmte Zahl ohne , wie folgt aus:

/\s+\.\d{10}/g 
+0

Das funktioniert perfekt, grazie mille! – user1319316

+0

@ user1319316 froh zu helfen – Robbie

Verwandte Themen