2009-01-29 57 views

回答

4
var latlong = 'ID: 39.825 -86.88333'; 

var point = latlong.match(/-?\d+\.\d+/g); 

//result: point = ['39.825', '-86.88333']; 
+0

@Detroitpro - 確保添加 - ?在第一個\ d之前也得到負值。 – 2009-01-29 20:05:38

8

要匹配的一個值

-?\d+\.\d+ 

對於這兩個值:

(-?\d+\.\d+)\ (-?\d+\.\d+) 

如果字符串總是具有這種形式:

"ID: 39.825 -86.88333".match(/^ID:\ (-?\d+\.\d+)\ (-?\d+\.\d+)$/) 
+0

更好的答案,涵蓋分組!也許重新接受這一個。 – 2009-07-27 06:22:14

2
function parseLatLong(str) { 
    var exp = /ID:\s([-+]?\d+\.\d+)\s+([-+]?\d+\.\d+)/; 

    return { lat: str.replace(exp, "$1"), long: str.replace(exp, "$2") };   
} 

function doSomething() { 
    var res = parseLatLong("ID: 39.825 -86.88333"); 

    alert('Latitude is ' + res.lat + ", Longitude is " + res.long); 
}