我从数据库中提取一个字符串,需要分别解析为纬度和经度, 该字符串被定义为“点”,格式如下:
(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
我做错了什么? 谢谢!
答案 0 :(得分:3)
Seems to work,但你有一个额外的斜杠
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]);
答案 1 :(得分:0)
您可以剪切分割,只需将匹配函数与正则表达式\((\-?\d+\.\d+), (\-?\d+\.\d+)\)
一起使用,它将返回两个坐标。 Firebug控制台输出:
>>> "(2.34000000, -4.500000000)".match(/\((\-?\d+\.\d+), (\-?\d+\.\d+)\)/);
["(2.34000000, -4.500000000)", "2.34000000", "-4.500000000"]
答案 2 :(得分:0)
您可以尝试使用math
功能:
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);
答案 3 :(得分:0)
var latlong = "(2.34000000, -4.500000000)"
var coords = latlong.replace(/[\(\) ]/g,'').split(',');
console.log(coords[0])
console.log(coords[1])