从可变长度的字符串中提取纬度,lng

Extract lat, lng from a variable length string

本文关键字:提取 纬度 lng 字符串      更新时间:2023-09-26

我想从这样的字符串中提取纬度和经度值:

var data = "(-20.210696507479017, -70.14000177383423),(-20.21202551027535, -70.14246940612793),(-20.21385790460967, -70.14066696166992),(-20.21168319245841, -70.13901472091675)" 

如果这些点可以数量变化,我如何提取这些对并将它们推送到数组中?

谢谢

拆分对,然后拆分每对并解析值。这将生成一个对象数组,这些对象具有 latlng 属性,这些属性是数字:

var coors = data.split('),(');
for (var i = 0; i < coors.length; i++) {
  var c = coors[i].replace('(', '').replace(')', '').split(',');
  coors[i] = { lat: parseFloat(c[0]), lng: parseFloat(c[1]) };
}

演示:http://jsfiddle.net/Guffa/EV2h4/

为什么不将其转换为 json 字符串数组,然后将其解析为对象。

var data = "(-20.210696507479017, -70.14000177383423),(-20.21202551027535, -70.14246940612793),(-20.21385790460967, -70.14066696166992),(-20.21168319245841, -70.13901472091675)";
var arr = JSON.parse("[" + data.replace(/[)(]/g, "") + "]");
for(var x=0; x<arr.length-1; x+=2)
    console.log("lat " + arr[x] + ", lon " + arr[x+1]);

编辑x+=2,好抓住伊夫塔赫