如何使用JavaScript分割这个字符串?

6

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, '');还是正则表达式?


2
如果这个格式不会改变,正则表达式肯定是过度工具。 - asgs
2
什么是问题?你所拥有的东西有效。 - Byron Whitlock
4个回答

8

使用

string.slice(1, -1).split(", ");

1
你可以使用正则表达式同时提取两个数字。
var string = '(37.961523, -79.40918)';
var matches = string.match(/-?\d*\.\d*/g);

1

在这种情况下,您可能想要使用正则表达式:

str.match(/-?\d+(\.\d+)?/g); // [ '37.961523', '-79.40918' ]

编辑 已修复下面评论中指出的问题。


你的正则表达式对于任何小于10且大于-10的整数都会失败。 - Andy E

0

这里有另一种方法:

如果 () 改为 [],你就会得到有效的JSON。所以你可以将生成坐标的代码改为产生[]而不是(),或者用以下内容替换它们:

str = str.replace('(', '[').replace(')', ']')

然后您可以使用 JSON.parse(也可用作外部库)来创建一个包含这些坐标的数组,已解析为数字:

var coordinates = JSON.parse(str);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接