繁体   English   中英

如何从字符串中提取lat和long值?

[英]How can i extract lat and long values from string?

例如,

'POINT (-109.42948819496439 44.5177967942721)'

如何从前面的字符串中提取lat和long值?

我试过了:

coords.substring(7,14) + ' ' + coords.substring(15,22)

但我认为我不能依赖它

 // Robust matching of two space-separated floats within parentheses: let point = 'POINT (-109.42948819496439 44.5177967942721)'; let [, lat, long] = point.match(/\\(([+-]?[0-9.]+) ([+-]?[0-9.]+)\\)/); console.log(lat, long); 

注意: RegExp仅与提供的测试用例保证一样健壮。 如果pattern不匹配,则抛出TypeError

如果格式始终相同,则可以使用substring()执行此操作:

 var x = 'POINT (-109.42948819496439 44.5177967942721)'; var lat = x.substring(x.indexOf('(') + 1, x.lastIndexOf(' ')); var lon = x.substring(x.lastIndexOf(' ') + 1, x.indexOf(')')); console.log(lat); console.log(lon); 

但是在字符串中操作模式的最佳选择是正则表达式

var input = 'POINT (-109.42948819496439 44.5177967942721)';
var res = input.replace("POINT ", "");
var res1 = res.replace(")", "");
var res2 = res1.replace("(", "");
var fields = res2.split(' ');

var lat = fields[0];
var long = fields[1];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM