如何使用JavaScript拆分此字符串?

问题描述

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