2012-05-10 4 views
1

문자열을 다음과 같은 형식의 "점"으로 정의합니다.JavaScript에서 문자열에서 위도와 경도를 추출하는 방법

문자열로 정의 된 문자열을 위도와 경도로 따로 따로 구문 분석해야하는 데이터베이스에서 추출합니다.

(2.340000000,-4.50000000)

내가 괄호를 제거하려고 다음 방법 split()로 구문 분석하지만 작업 올바른 수행하는 정규 표현식을 마련하지 못하고 있어요 :

지금까지를 나는 많은 대안을 시도했으며,

var latlong = "(2.34000000, -4.500000000)" 
latlong.replace('/[\(\)]//g',''); 
var coords = latlong.split(','); 
var lat = coords[0]; 
var long = coords[1]; 

나는 것을 실행하면, 내가 가진 모든입니다 : 내가 잘못 뭐하는 거지 NaN, -4.500000

? 감사합니다.

+1

난 당신의 코드를 실행하고 그것을 작동 . 당신은 어딘가에 문제가 있습니다. –

+0

Ive는 jsfiddle에서 이것을 실행 해 보았습니다. 올바른 long과 lat를 인쇄합니다. 보십시오 (긴 + ""+ 위도) – JackalopeZero

+0

당신의 코드는 바로 당신이 단지 반환 값을 저장할 필요가있다 .... 내 대답을 참조하십시오 –

답변

3

Seems to work,하지만 당신은 당신이 math 기능을 사용하려고 할 수 있습니다

var value = '(2.340000000,-4.50000000)'; 

//you had an extra slash here 
//   ''''''''''''''''v 
value = value.replace(/[\(\)]/g,'').split(','); 

console.log(value[0]); 
console.log(value[1]);​ 
0

스플릿을 잘라내어 정규 표현식 \((\-?\d+\.\d+), (\-?\d+\.\d+)\)으로 일치 기능을 사용하면 두 좌표가 반환됩니다. 파이어 버그 콘솔 출력 :

>>> "(2.34000000, -4.500000000)".match(/\((\-?\d+\.\d+), (\-?\d+\.\d+)\)/); 
["(2.34000000, -4.500000000)", "2.34000000", "-4.500000000"] 
0

추가 슬래시했다 :

var latlong = "(2.34000000, -4.500000000)" 
var coords = latlong.match(/\((-?[0-9\.]+), (-?[0-9\.]+)\)/); 

var lat = coords[1]; 
var long = coords[2]; 
alert('lat: ' + lat); 
alert('long: ' + long); 
0
var latlong = "(2.34000000, -4.500000000)" 
var coords = latlong.replace(/[\(\) ]/g,'').split(','); 

console.log(coords[0]) 
console.log(coords[1])