Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Не могу никак вогнать в регулярные выражения! (https://javascript.ru/forum/project/58149-ne-mogu-nikak-vognat-v-regulyarnye-vyrazheniya.html)

rusbody 07.09.2015 16:28

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


$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ом? :-?

forwardonly2015 07.09.2015 18:15

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

<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>

rusbody 08.09.2015 15:22

Спасибо! За мысль! сделаю так)


Часовой пояс GMT +3, время: 17:39.