var regexp = /\.(\w+)/g, string1, string2;
string1 = "object.prop.style[0].abcd";
string2 = string1.replace(regexp, "['$1']");
alert(string2); // => "object['prop']['style'][0]['abcd']"
Есть строка string1 - "путь" до какого-либо элемента объекта, объект может быть любого уровня вложенности.
В этой строке могут содержаться отношения вида var.subvar (с точкой). Все найденные необходимо заменить на эквивалентную запись var['subvar'].
Здесь использую регулярку, еще где-то лежит реализация с помощью String.split и цикла, но с регуляркой работает вроде как быстрее, да и выглядит компактнее.
В общем есть ли более хорошее решение данной задачи?