Показать сообщение отдельно
  #6 (permalink)  
Старый 21.11.2011, 15:10
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от cbone
Не могу понять используя какой метод можно привести к данному виду.
такой как у тебя массив получить без извращений трудно
покажу только как, например, можно разобрать твою строку
а массив создашь сам
var str = "ЭНИ-601[2к[10Вт;20Вт];4к[10Вт;20Вт;30Вт];8к[70Вт;80Вт]];",
m, m1, // вспомогательные
root = '', arr1 = [], arr2 = []; // результат

m = str.match(/([^\[]+)\[(.+)\];/);
root = m[1];
m = m[2].match(/\S\S\[[^\[]+\]/g);

for (var i = 0; i < m.length; i++) {
    m1 = m[i].match(/(\S\S)\[([^\[]+)\]/);
    arr1[i] = m1[1];
    arr2[i] = m1[2].split(';');
}

alert(root); // здесь первый уровень
alert(arr1.join('\n')); // здесь второй уровень []
alert(arr2.join('\n')); // здесь третий уровень [][]


вариантов как это сделать много
это первое что пришло в голову
наверняка кто-нибудь сделает красивый вариант
Ответить с цитированием