Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.09.2015, 16:28
Аспирант
Отправить личное сообщение для rusbody Посмотреть профиль Найти все сообщения от rusbody
 
Регистрация: 18.02.2011
Сообщений: 51

Не могу никак вогнать в регулярные выражения!
Никак не могу их догнать


$text = 'Привет) http://site.com/tf/  [url]http://site.com/[/url]';

$text = preg_replace("~((http|https|ftp|ftps)://|www\.)[^\s]+~siu", '[url]$0[/url]', $text);


Эта регулярка оборачивает все ссылки в bbcode [url]
Оборачивает Даже уже обёрнутую!

Как сделать, чтобы она не оборачивала уже обёрнутые bbcodом?
Ответить с цитированием
  #2 (permalink)  
Старый 07.09.2015, 18:15
Аспирант
Посмотреть профиль Найти все сообщения от forwardonly2015
 
Регистрация: 31.08.2015
Сообщений: 90

Проще всего в несколько проходов

<html>
<script>

text = 'Привет) http://site.com/tf/  [url] http://site.com/[/url] Привет) [url]http://www.site.com/tf/[/url]  http://site.com/'

alert(
  text.replace(/((http|https|ftp|ftps):\/\/(www\.)?\S+)/gi, "[url]$1[/url]")
    .replace(/\[url\]\s*\[url\]/ig, "[url]")
    .replace(/\[\/url\]\s*\[\/url\]/ig, "[/url]")
)






</script>
</html>

Последний раз редактировалось forwardonly2015, 07.09.2015 в 18:19.
Ответить с цитированием
  #3 (permalink)  
Старый 08.09.2015, 15:22
Аспирант
Отправить личное сообщение для rusbody Посмотреть профиль Найти все сообщения от rusbody
 
Регистрация: 18.02.2011
Сообщений: 51

Спасибо! За мысль! сделаю так)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения! domovoj_im Общие вопросы Javascript 3 18.02.2015 16:14
Регулярные выражения zoinx2010 Общие вопросы Javascript 4 07.02.2014 16:37
регулярные выражения remember_me Общие вопросы Javascript 2 26.12.2013 14:56
Составить регулярные выражения ($) Zero Tolerance Общие вопросы Javascript 10 19.11.2013 13:14
нежадные регулярные выражения KOLANICH Общие вопросы Javascript 2 12.12.2010 01:08