Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Регулярное выражение для проверки URL (https://javascript.ru/forum/events/5715-regulyarnoe-vyrazhenie-dlya-proverki-url.html)

Beck 31.10.2009 18:46

Регулярное выражение для проверки URL
 
Не подскажете пожалуйста?

Очень нужно для валидации в форме. Сам еще до регулярных выражений не добрался толком, только основы знаю.

Заранее спасибо! :)

Riim 01.11.2009 00:53

RegExp.url = '(?:(?:ht|f)tps?://)?(?:[\\-\\w]+:[\\-\\w]+@)?(?:[0-9a-z][\\-0-9a-z]*[0-9a-z]\\.)+[a-z]{2,6}(?::\\d{1,5})?(?:[?/\\\\#][?!^$.(){}:|=[\\]+\\-/\\\\*;&~#@,%\\wА-Яа-я]*)?';

'v-url': ['Требуется url адрес! Пример: www.mysite.ru', function(value) {
	return !value || (new RegExp('^' + RegExp.url + '$', 'i')).test(value);
}],


upd: вот еще: http://javascript.ru/forum/misc/5508...perssylki.html

Beck 01.11.2009 16:22

Жестко. :blink:

Еще бы кто то объяснил, какая часть выражения для чего нужна.

Я понимаю, что там сводка непринужденных и принужденных условий, но вот в конце вообще не разобрать, что творится.

javascript_pupil 03.11.2009 07:25

А какой смысл проверять URL на стороне клиента? Пользователь легко может такую проверку обойти и отправить в форму любые данные. Такие проверки надо делать на стороне сервера, соответственно не на javascript.

Octane 03.11.2009 07:29

Чтобы не отправлять зря ошибочные данные формы. КО

javascript_pupil 03.11.2009 07:37

Octane, а если у пользователя отключен javascript? Язык безусловно нужный, но только не для таких случаев.

Octane 03.11.2009 08:44

Я не отрицал, что на стороне сервера необходимо выполнять проверку.

Mizuho 01.02.2011 12:29

Цитата:

Сообщение от Riim
RegExp.url = '(?:(?:ht|f)tps?://)?(?:[\\-\\w]+:[\\-\\w]+@)?(?:[0-9a-z][\\-0-9a-z]*[0-9a-z]\\.)+[a-z]{2,6}(?::\\d{1,5})?(?:[?/\\\\#][?!^$.(){}:|=[\\]+\\-/\\\\*;&~#@,%\\wА-Яа-я]*)?';

http://VasheSoznanie.ru/forum - работает
http://VasheSoznanie.ru - работает
http://VasheSoznanie.ru/ - НЕ работает

Буду очень признателен если исправите!...

with-love-from-siberia 01.02.2011 13:16

попробуйте вот эту регулярку

/^(?:([a-z]+):(?:([a-z]*):)?\/\/)?(?:([^:@]*)(?::([^:@]*))?@)?((?:[a-z0-9_-]+\.)+[a-z]{2,}|localhost|(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])\.){3}(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])))(?::(\d+))?(?:([^:\?\#]+))?(?:\?([^\#]+))?(?:\#([^\s]+))?$/i


Работает для подавляющего большинства URI (интернет- и почтовые адреса, DSN, понимает имена доменов, IP-адреса)

Riim 01.02.2011 13:29

Цитата:

Сообщение от Mizuho
http://VasheSoznanie.ru/ - НЕ работает

работает. Флаг IgnoreCase ставить надо.


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