2015-04-21 4 views
-1

Если есть строка в следующем формате:Как разобрать строку в массив

$parsethis = 'string[1][2]'; 

Как разобрать это так мой результат является массивом, как:

$parsed = ['string', 1 , 2] 
+1

Ваш ожидаемый выход недействителен. Объекты имеют пары ключ/значение. Вам нужен массив? '['string', 1, 2]'? – Andy

+0

В JavaScript нет сильной типизации. Тип элементов массива всегда является объектом. Или, 'object []' например, в C#. Вы все же можете индивидуально получать типы элементов, но само объявление массива не имеет сильного типа. –

+1

Вы уверены, что отметили правильный язык? – thefourtheye

ответ

1

Я думаю REGEX это путь здесь, в compiination с методом Массивы разделения.

var array = $parsed.split(/\]\[|\[|\]/); 

console.log(array) results in 
Array [ "string", "1", "2", "" ] 

iam не очень хорошо подходит для использования регулярных выражений, но, возможно, это ведет вас в правильном направлении.

1

Вы можете сделать что-то вроде этого:

var $parsethis = 'string[1][2]'; 
var arr = $parsethis.replace(/\]/g,'').split('['); 
//arr = ["string", "1", "2"] 
alert(arr); //alerts "string,1,2" 

arr массив будет все строки, хотя. Исходя из вопроса, я не знаю, как вы будете использовать результаты.

1

Вы можете получить массив из этой строки с помощью str.split(), а затем очистить его с помощью str.replace().

var parsed = parsethis.split('['); 
console.log(parsed); // ["string", "1]", "2]"] 
for(var i = 0; i++; i<parsed.length){ 
    parsed[i] = parsed[i].replace(']',''); 
} 
console.log(parsed); // ["string", "1", "2"] 
Смежные вопросы