Я пишу это потому, что я обновляю строку с "bbcode" на database
и не могу использовать contenteditable
... после получения строки в базе данных, проанализированной bbCodes.Надстройки bbCode не работают так, как я хочу.
У меня есть простой BBCODE парсер.
//////////////////////////////
function bbc2html($content) {
$search = array (
'/(\[b\])(.*?)(\[\/b\])/',
'/(\[i\])(.*?)(\[\/i\])/',
'/(\[u\])(.*?)(\[\/u\])/',
'/(\[ul\])(.*?)(\[\/ul\])/',
'/(\[li\])(.*?)(\[\/li\])/',
'/(\[url=)(.*?)(\])(.*?)(\[\/url\])/',
'/(\[url\])(.*?)(\[\/url\])/'
);
$replace = array (
'<strong>$2</strong>',
'<em>$2</em>',
'<u>$2</u>',
'<ul>$2</ul>',
'<li>$2</li>',
'<a href="$2" target="_blank">$4</a>',
'<a href="$2" target="_blank">$2</a>'
);
return preg_replace($search, $replace, $content);
}
//////////////////////////////
Мне написали вставку bbcode"textarea"
функция JavaScript.Но мои гости - старики, и они по ошибке мультикликают или не понимают, как работают "bbcode"
действия.
Большую часть времени у моих строк контента есть родительские родительские bb-коды.Например: [b][b]Simple[/b][b][/b][/b]
Как заменить чистую версию: [b][b]Simple[/b][b][/b][/b]
на [b]Simple[/b]
?
например, Я хочу убрать все шансы,
[?][[/?]?]***[/?][/?] => wrong click => output = "[?]***[/?]"
[?][/?] => empty => output = ""
[?]**[/?] => small 3 => output = "**"
[url=]****[/url] => empty url => output = "****"
[url]****[/url] => is not url => output = "****"