2014-01-13 5 views
0

Я имею var string = (2200 x 1500)(2441 x 1610)расщепление строки в скобках

Я хочу, чтобы разбить строку на массивы внутри скобок, так href[0] = (2200 x 1500) и href[1] = (2441 x 1610)

Я попытался это:

var href = []; 
    $(document).each(function() { 
     var hey = matchingDivs.text(); 
     var res = hey.split(")("); 
     href.push(res); 
    }); 

так, что когда я предупреждение, подобное этому alert("("+href[href.length -1]); результат должен быть (2441 x 1610), но вместо этого подходит see JSFIDDLE

ответ

1

Попробуйте

var href = $.trim($("#matchingDivs").text()).match(/\(.*?\)/g); 
console.log(href); 

Demo: Fiddle

0
var string = "(2200 x 1500)(2441 x 1610)"; 

var href = string.replace(")(", ")#(").split("#"); 
3

Как насчет:

var hey = $("#matchingDivs").text(); 
    var href = hey.match(/\(([^()]+)\)/g); 

    alert(href[0]); 
    alert(href[1]); 
0

Похоже, вы недоразумение, что push делает (см documentation).

Он просто добавляет все, что передается в качестве нового элемента массиву.

Так что в вашем случае он добавляет весь результат из split (массива) в конец вашего массива href. Таким образом, в конце вы имеете 2-х глубинный массив, внешний с размером 1, внутренний с размером 2, удерживающий элементы, которые вы ищете.

Вы, однако, ожидаете, что он добавит элементы, возвращенные разделом в ваш массив.

Кроме того, вы могли бы попытаться сначала упростить свой пример (оставив текст синтаксического анализа из div, который не имеет ничего общего с фактической проблемой).

Смежные вопросы