RegExp адреса сайта

86 views
Skip to first unread message

Vietnam

unread,
Oct 15, 2009, 11:34:09 AM10/15/09
to ruFlash
Нужен правильный RegExp для выдергивания адреса сайта из длинннной
ссылки.
к приемеру есть "http://groups.google.com/group/ruflash/post" - мне
нужно "http://groups.google.com"
включая сложные ссылки с различными знаками.

Vietnam

unread,
Oct 15, 2009, 11:42:56 AM10/15/09
to ruFlash
т.е. чтоб корректно обрабатывал "https://" и знак "-" в адресе домена
или субдомена

Ruslan Shestopal

unread,
Oct 15, 2009, 11:45:49 AM10/15/09
to ruf...@googlegroups.com

var url_str = "http://groups.google.com/group/ruflash/post"

var res = url_str.match(/http(.){1,3}\/\/[^\/]*/g);
trace(res)

Aziz Zaynutdinoff

unread,
Oct 15, 2009, 11:46:23 AM10/15/09
to ruf...@googlegroups.com
> Нужен правильный RegExp для
> выдергивания адреса сайта из
> длинннной
> ссылки.
Сходу могу предложить такой:
((((f|ht){1}tp(?:s)?://)([-a-zA-Z0-9@:%_\+.~#?&/=])+?)/)
только здесь получается условия такое:
если в конце слэша не будет, то группа
не считается найденной.

отрабатывает на протоколы http://, ftp://
https://

--
Aziz Zaynutdinoff
actionsmile 3.0 developer

Aziz Zaynutdinoff

unread,
Oct 15, 2009, 11:49:11 AM10/15/09
to ruf...@googlegroups.com
(?:(((?:f|ht){1}tp://)(?:[-a-zA-Z0-9@:%_\+.~#?&/=])+?)/)

вот так точнее, чтоб ht/ft не становились
отделной группой
первая группа будет урл, вторая
протокол. Если надо дальше что-то
просто убирайте условия non-capture --> ?: в
необходимых группах.

Sergey Kruk

unread,
Oct 15, 2009, 11:55:05 AM10/15/09
to ruf...@googlegroups.com
> Нужен правильный RegExp для выдергивания адреса сайта из длинннной
> ссылки.

Если ftp не нужно, а нужно только http и https, то проще всего так:
/^https?:\/\/[^\/]+/

Сергей Крук

Aziz Zaynutdinoff

unread,
Oct 15, 2009, 12:02:49 PM10/15/09
to ruf...@googlegroups.com
> т.е. чтоб корректно обрабатывал "https://"
> и знак "-" в адресе домена
> или субдомена
если надо получить результат от
текущего урл, то через ExternalInterface можно
спросить location. Он в себе уже содержит
все необходимые данные в уже
распарсенном виде.

Flop Serg

unread,
Oct 15, 2009, 12:29:02 PM10/15/09
to ruf...@googlegroups.com
а можно и я вариант запощу ))
regex такая классная штука один и тот же таск можно решить очень-очень многими способами

вот /(?<=http://|ftp://|https://)[\w-.]*?\w{2,4}(?=/)/g
это для match
domain = str .match(/(?<=http:\/\/|ftp:\/\/|https:\/\/)[\w-.]*?\w{2,4}(?=\/)/g)

Олег Галабурда

unread,
Oct 15, 2009, 1:22:29 PM10/15/09
to ruf...@googlegroups.com
Здрасте!

> к приемеру есть "http://groups.google.com/group/ruflash/post" - мне
> нужно "http://groups.google.com"
> включая сложные ссылки с различными знаками.

var str:String = "http://groups.google.com/group/ruflash/post";
trace(str.match(/^\w+:\/\/[\w._-]+/)); // http://groups.google.com

--
Oleg Galaburda
http://blog.actualwave.com/

farr...@ukr.net

unread,
Oct 15, 2009, 4:10:53 PM10/15/09
to ruf...@googlegroups.com
вот тут: http://www.ietf.org/rfc/rfc2396.txt
изучаем и ищем строчку "Parsing a URI Reference with a Regular Expression"
и не надо заниматься самодеятельностью :))

farr...@ukr.net

unread,
Oct 15, 2009, 4:15:33 PM10/15/09
to ruf...@googlegroups.com
а, и еще вспомнил http://en.wikipedia.org/wiki/URI_scheme
Reply all
Reply to author
Forward
0 new messages