Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中,如何从字符串中提取纬度和经度_Javascript_Regex_Latitude Longitude_String Parsing - Fatal编程技术网

在JavaScript中,如何从字符串中提取纬度和经度

在JavaScript中,如何从字符串中提取纬度和经度,javascript,regex,latitude-longitude,string-parsing,Javascript,Regex,Latitude Longitude,String Parsing,我正在从数据库中提取一个字符串,需要分别解析为纬度和经度, 字符串定义为“点”,格式如下: (234000000,-4.50000000) 我正在尝试删除括号,然后使用方法split()对其进行解析,但我还没有找到一个能正确完成这项工作的正则表达式: 到目前为止,我已经尝试了很多选择,而且 var latlong = "(2.34000000, -4.500000000)" latlong.replace('/[\(\)]//g',''); var coords = latlong.split(

我正在从数据库中提取一个字符串,需要分别解析为纬度和经度, 字符串定义为“点”,格式如下:

(234000000,-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

我做错了什么?
谢谢

您可以剪切分割,只需将匹配函数与regex
\((\-?\d+\.\d+),(\-?\d+.\d+)
一起使用,它将返回两个坐标。Firebug控制台输出:

>>> "(2.34000000, -4.500000000)".match(/\((\-?\d+\.\d+), (\-?\d+\.\d+)\)/);
["(2.34000000, -4.500000000)", "2.34000000", "-4.500000000"]
,但你有一个额外的斜杠

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]);​
您可以尝试使用以下功能:

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

我运行了你的代码,它运行正常。您在其他地方没有问题。我尝试在JSFIDLE中运行此命令,它会打印正确的long和lat。请尝试警报(long+“”+lat)您的代码是正确的,您只需要存储替换的返回值。。。。看到我的答案了吗
 var latlong = "(2.34000000, -4.500000000)"
 var coords = latlong.replace(/[\(\) ]/g,'').split(',');

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