Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.151.106] |
|
Сообщ.
#1
,
|
|
|
Всем привет, никак не могу разобраться в следующей задаче. Чтобы пользователя не тревожить, всякими напоминаниями о не корректном вводе, я хочу на сервере обрабатывать вводимый им url, а именно, если он введет:
........... - http://site.ru/ - должно вырезать site.ru - http://site.ru - должно вырезать site.ru - site.ru/ - должно вырезать site.ru - site.ru - так и останется - http://www.site.ru/ - должно вырезать www.site.ru - http://www.site.ru - должно вырезать www.site.ru - www.site.ru/ - должно вырезать www.site.ru - www.site.ru - так и останется ........... Т.е. мне важны www. если они есть вводимом url, а также сам домен, никаких слешей в конце и другого хлама, чисто url главной странички с www. или без www. если присутствовало Также после обрезания проверить на корректность Спасибо |
Сообщ.
#2
,
|
|
|
(?:[a-z][-\w\d]*\.)+[a-z]{2,6} Есть еще IDN домены, и с ними намного больше гемороя. |
Сообщ.
#3
,
|
|
|
Цитата Sunny @ (?:[a-z][-\w\d]*\.)+[a-z]{2,6} Есть еще IDN домены, и с ними намного больше гемороя. циферки добавил в регу /(?:[a-z0-9][-\w\d]*\.)+[a-z]{2,6}/i а как не допустить такое в урле? qwe.rty--uio.com т.е. двойное тире, таких уролов ведь нет Добавлено Цитата Sunny @ Есть еще IDN домены, и с ними намного больше гемороя. кириллические? мы их упускаем, а насколько геморно? разве не так? /(?:[a-zа-я0-9][-\w\d]*\.)+[a-zа-я]{2,6}/iu |
Сообщ.
#4
,
|
|
|
Цитата TetRis @ циферки добавил в регу Убери, они не верны. \d отвечает за цифры. Добавлено Цитата TetRis @ кириллические? мы их упускаем, а насколько геморно? разве не так? Не только кириллица в IDN встречается. Не так. Добавлено Цитата TetRis @ т.е. двойное тире, таких уролов ведь нет Их не будет, хотя вариант www.site-.ru возможен, он не учитывается. |
Сообщ.
#5
,
|
|
|
Цитата Sunny @ Убери, они не верны. \d отвечает за цифры. тогда так: /(?:[\w\d][-\w\d]*\.)+[a-z]{2,6}/i а то такой урл не пропускало 123.qwer.ru и может лучше жестко фильтровать на зоны? ru, com? ... меняем +[a-z]{2,6} на +(ru|com|biz) и тд а то пропускает uz.com.ru.qqqq .qqqq как-то смотрится плохо))) Добавлено пропускает: www.site-.ru www.si--te.ru |
Сообщ.
#6
,
|
|
|
В общем рега готова:
(?:[\w\d][-\w\d]*\.)+(?:biz|com|info|name|net|org|[a-z]{2}) Но есть в ней мелкие огрехи: в начале доменного имени пропускает _ or __ - одно или много нижних подчеркиваний в центре доменного имени пропаускает _ or __ - одно или много нижних подчеркиваний -- - много тире в конце доменного имени пропускает _ or __ - одно или много нижних подчеркиваний - or -- - одно или много тире т.е. _popasike.ru - пропустило __popasike.ru - пропустило -popasike.ru - не пропустило --popasike.ru - не пропустило pop_asike.ru - пропустило pop__asike.ru - пропустило pop-asike.ru - пропустило pop--asike.ru - пропустило popasike_.ru - пропустило popasike__.ru - пропустило popasike-.ru - пропустило popasike--.ru - пропустило помогите допилить |
Сообщ.
#7
,
|
|
|