Показать сообщение отдельно
  #4 (permalink)  
Старый 21.10.2010, 11:17
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Ну вот как-то так, например.

var str = '<div class="c1">text1<div class="c2">text2<div class="c3">text3</div></div></div>';
var level = 0, inside = false;
alert(str.replace(/<\/?div[^>]*>|[^<]+/g, function(tag) {
    if (inside) {
        if (tag.indexOf('<div') == 0) {
            level++;
        } else if (tag == '</div>') {
            if (level) {
                level--;
            } else {
                inside = false;
            }
        }
        return '';
    } else {
        if (tag == '<div class="c2">') {
            inside = true;
            return '';
        } else {
            return tag;
        }
    }
}));
Ответить с цитированием