QuickeneR
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Или не так. В предшествующем тексте есть незакрытый код [b]. Все вместе выглядит так [q][b] ...[/q] ... [b]...[/b] При замене BB кодов на HTML теги скрипт не заморачивается с полным разбором, он просто заменят пары [b] [/b] на <b> </b>. В данном случае он заменит первый открывающийся и первый закрывающийся, а второй открывающийся останется "не у дел" и заменен не будет.
Теперь посмотрим с точки зрения браузера. Он полностью разбирает теги, и видет, что первый тег <b> не закрыт, но находится внутри цитаты (таблица). В соответствии со спецификацией и правилами вложенности он автоматически закрывает его перед концом цитаты. Идя дальше, он пропускает [b] как обычный текст и видит тег </b>. Но поскольку открывающегося тега <b> не было, он считает его неправильным и игнорирует. Таким образом, тут все верно.
Вернемся к твоему "багу". Сделать, чтобы автоматически подставляемые части (Добавлено) не зависели от правильного закрытия кодов в предыдущем тексте можно, но для этого придется заменить простой регэксп на сложный или даже на парсер, который будет работать существенно медленнее. Вопрос, зачем это нужно, если разница в их работе проявляется только на некорректных последовательностях кодов? |