Как мне разбить эту строку с помощью JavaScript? - PullRequest
6 голосов
/ 21 мая 2011

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?

Ответы [ 4 ]

8 голосов
/ 21 мая 2011

Использование

string.slice(1, -1).split(", ");
1 голос
/ 21 мая 2011

Вы, вероятно, хотели бы использовать регулярные выражения в таком случае:

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

РЕДАКТИРОВАТЬ Исправлено для решения проблемы, указанной в комментарии ниже

1 голос
/ 21 мая 2011

Вы можете использовать регулярное выражение для извлечения обоих чисел одновременно.

var string = '(37.961523, -79.40918)';
var matches = string.match(/-?\d*\.\d*/g);
0 голосов
/ 08 января 2012

Вот еще один подход:

Если бы () было [], у вас был бы действительный JSON. Поэтому вы можете либо изменить код, генерирующий координаты, чтобы получить [] вместо (), либо заменить их на:

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

Затем вы можете использовать JSON.parse (также доступно как внешняя библиотека ), чтобы создать массив, содержащий эти координаты, уже проанализированные как числа:

var coordinates = JSON.parse(str);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...