问题描述
|
Javascript:
var string = \'(37.961523,-79.40918)\';
//remove brackets: replace or regex? + remove whitespaces
array = string.split(\',\');
var split_1 = array[0];
var split_2 = array[1];
输出:
var split_1 = \'37.961523\';
var split_2 = \'-79.40918\';
我应该只使用string.replace(\'(\',\'\').replace(\')\',\'\').replace(/\\s/g,\'\');
还是RegEx?
解决方法
采用
string.slice(1,-1).split(\",\");
,您可以使用正则表达式一次提取两个数字。
var string = \'(37.961523,-79.40918)\';
var matches = string.match(/-?\\d*\\.\\d*/g);
,您可能希望在以下情况下使用正则表达式:
str.match(/-?\\d+(\\.\\d+)?/g); // [ \'37.961523\',\'-79.40918\' ]
编辑固定以解决以下评论中指出的问题
,这是另一种方法:
如果()
是[]
,那么您将具有有效的JSON。因此,您可以做的是更改生成坐标的代码以生成[]
而不是()
,或者将它们替换为:
str = str.replace(\'(\',\'[\').replace(\')\',\']\')
然后,您可以使用JSON.parse
(也可以作为外部库使用)创建一个包含这些坐标的数组,这些坐标已经解析为数字:
var coordinates = JSON.parse(str);