Показать сообщение отдельно
  #5 (permalink)  
Старый 19.01.2012, 18:25
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

можно сделать и так:
var text = 'test [b=color]bold[/b] blah [code run]function(){}[/code] tar [quote]blah blah [i]ta[i]r[/i]am[/i] param[/quote]';
 
function parseBBCode( text ) {
    return text.replace( /\[(([a-z]+)(?:(?:\=|\s)([^\]]+))?)\](.*)\[\/\2\]/gi, function( all, tagAttr, tag, attr, content ) {

        // tag - содержит имя тега BBCode
        // tagAttr - содержит и тег и его атрибут(ы)
        // attr - трибут(ы) текущего тега
        // content - собственно содержимое этого тега

        return '<' + tagAttr + '>' + parseBBCode( content ) + '</' + tag + '>';
    });
}
 
alert( parseBBCode( text ) );


BBCode теги он ищет такого вида:
[code]
[code=color]
[code run]
[code run hide]

Ну а дальше дело техники и воображения.
Ответить с цитированием