Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Удаление BB-кодов...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Ваше мнение...
Саныч
Отправлено: 17 Июля, 2010 - 10:39:53
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




Есть textarea, в которую можно добавлять BB-коды: [b], [i], [u], [s], [font=название шрифта], [size=размер], [color=номер цвета], [url=адрес] и есть кнопочка "Удалить форматирование" по нажатию на которую все bb-коды должны удалиться. Я решил это таким способом:
CODE (javascript):
скопировать код в буфер обмена
  1. while(value.match(/\[(\w+).*?\](.*?)\[\/\1\]/g) != null) value = value.replace(/\[(\w+).*?\](.*?)\[\/\1\]/g,"$2");

value - это значение textarea...

Вопрос: возможно есть какие-то погрещности или более грамотное решение?


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
Мелкий Супермодератор
Отправлено: 17 Июля, 2010 - 11:24:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Может порезать ненужные символы, например, программный листинг (как наиболее часто встречающиеся [ и ]):
$array[0] = чего-нибудь_там_получаем_из_функции();
передаём_его_в_другую_функцию($array[0]['name']); //например, чтобы был не такой академический пример Улыбка

вот, ключи массива вырежет, из-за чего потом будет забавно разбирать код Улыбка

(Отредактировано автором: 17 Июля, 2010 - 11:26:22)



-----
PostgreSQL DBA
 
 Top
Champion Супермодератор
Отправлено: 17 Июля, 2010 - 11:40:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Только лучше match(/\[(?:b|u|url[^\]]+|quote[^\]]*)\]/gi...
Чтобы не сматчилось то, чего не хотелось бы
 
 Top
JustUserR
Отправлено: 30 Июля, 2010 - 16:27:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




Саныч пишет:
Вопрос: возможно есть какие-то погрещности или более грамотное решение?
Можно использовать только одно регулярное выражение с модификатором для глобальной замены и нежадными квантификаторами - если вы хотите вырезать именно определенный набор BB-тегов то можете перечислить их через оператор ИЛИ | и взять в круглые скобки для составление обратной ссылки для закрывающего тега - а между поисковым шаблоном для открывающего и закрываюещго тега вставить нежадный квантификатор Такой подход будет работать для любых в том числе вложенных BB-тегов - главное чтобы все они были синаксически правильными и закрытыми в нужном порядке Для непарных BB-тегов удобнее составить отдельный шаблон который будет их предвартельно удалять


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB