2012-02-19 2 views
0

Я искал, но не смог найти что-то вроде этого регулярного выражения. Это регулярное выражение должно уловить каждый URL-адрес, например «http://domain.com/blabla», «domain.com/blabla», «domain.com», «www.domain.com» ... Так же, как и Twitter. Но он не должен ловить особый домен. «togl.me», «user.togl.me» ... Основной домен с субдоменами не должен быть уловлен.JavaScript Url Catcher Like Twitter (Regexp)

Прошу прощения за мой английский. Спасибо,

+0

Что особенного в 'togl.me'? Это не может быть особенным, просто потому, что вы не знакомы с ним ... Просто возьмите один из многих RegExps из SO и разделите ненужные TLD (домены верхнего уровня). –

+0

Я не понимаю из regex, но я нашел это: '/ (^ | \ s) ((https?: \/\ /)? [\ W -] + (\. [\ W -] +) + \ .? (: \ d +)? (\/\ S *)?)/gi' это делает то, что я хочу, но я должен изменить, что это не должно ловить «togl.me» –

+0

Что вам нужно? Все домены, кроме 'togl.me' ** и ** нет субдомена (кроме' www')? –

ответ

2

Следующий шаблон соответствует вашим критериям:

/(^|\s)((https?:\/\/)?(?!([\w-]+\.)*?togl\.me(\/|\s|$))[\w-]+(\.[\w-]+)+\.?(:\d+)?(\/\S*)?)/gi 

Он основан на шаблоне вы предоставили. togl.me исключается с помощью обратного опережения:

(?!([\w-]+\.)*?togl\.me(\/|\s|$))   "not followed by the (xxx.)*togl.me" 
+0

Да, это решило мою проблему. Я вообще проверил, и он работает. Большое спасибо Робу. –