2013-11-14 1 views
0

У меня есть строка, которая содержит местоположение:Как преобразовать строку (содержащее местоположение) в массив

var string = "[ 30.733315, 76.77941799999999,City,6,10/28/2013 10:28:39 AM]" 

Как преобразовать это в массив, так что я могу получить

arr[0] = 30.733315, 
arr[1] = 76.77941799999999 so on. 

String.split() здесь не работает.

+0

Почему у вас есть эта строка? Откуда это? Каким должен быть формат? В частности, что, если в названии города есть запятая? – user2357112

+0

, исходя из API карт Google. Город не имеет запятой. – robieee

+0

@robieee Тогда в документации, вероятно, будет какое-то объяснение, что делать с данными. –

ответ

0

кросс-браузерный решение:

var string = "[ 30.733315, 76.77941799999999,City,6,10/28/2013 10:28:39 AM]"; 

var arr = string.replace(/\[|\]/g,'') 
       .replace(/ /g,'') 
       .split(','); 
+0

работает нормально. большое спасибо – robieee

0
var string = "[ 30.733315, 76.77941799999999,City,6,10/28/2013 10:28:39 AM]"; 
string = string.replace('[',"['"); 
string = string.replace(']',"']"); 
string = string.replace(',',"','","gi"); 

console.log(string); 
arr=eval(string); 

console.log(arr); 
0

Попробуйте

var mystring= "[ 30.733315, 76.77941799999999,City,6,10/28/2013 10:28:39 AM]" 
var list = mystring.split(','); 

Выход:

for(var i = 0; i < list.length; i++) 
{ 
    alert(list[i]); 
} 

String.split Преобразует объект String, в массив строк, разделяя строку на подстроки.

1

Сплит на [, ] и ,.

] должны быть экранированы в расколе регулярных выражений

var arr = string.split(/[[,\]]/).filter(function(el) { return el.trim(); }) 

Array.prototype.filter требуется, чтобы удалить пустые строки из массива.

Более читаемый вариант filter будет:

arr.filter(function(el) { 
    return el.trim().length === 0; 
}); 
Смежные вопросы