Получить текст между открывающей и закрывающей скобкой
Что-то не могу придумать грамотного пути решения следующей задачи. Нужно получить содержимое между открывающей и закрывающей скобкой, при чем, внутри и снаружи может быть произвольное количество этих скобок:
'{a{b{c}d}e}f}g}' → 'a{b{c}d}e' |
Цитата:
if() { if() { if() { } // 3rd if } // 2nd if } // 1st if |
Цитата:
|
вариант (на скорую руку)
var text = '{a{b{c}d}e}f}g}'; var left = text.length; var right = -1; var arr = []; while( ~( right = text.indexOf( '}', right + 1 ) ) && ~( left = text.lastIndexOf( '{', left - 1 ) ) ) { arr.push([ left, right + 1 ]); } alert( text.slice( arr[ 0 ][ 0 ], arr[ 0 ][ 1 ] ) + '\n' + text.slice( arr[ 1 ][ 0 ], arr[ 1 ][ 1 ] ) + '\n' + text.slice( arr[ 2 ][ 0 ], arr[ 2 ][ 1 ] ) ); |
nerv_, хм, прикольно. Не могу плюсануть только.
|
Часовой пояс GMT +3, время: 23:05. |