Проверка URL REGEX - URL, действительный только с http: //

17

Как это работает

У меня есть поле ввода для ввода URL-адреса веб-сайта, и я хочу проверить его, и если URL-адрес в порядке, я дам поле ввода классу («validated_ok») и удалю класс («cf_required»), и если его неправильно, наоборот.

Проблема

URL-адрес должен быть прав, если он написан с http:// , но на самом деле он также прав только с www ( www.google.ch ). Как мне изменить регулярное выражение?

Javascript

// CHECK WEBSITE
$(".cf_required[name='website']").focusout(function() {
    var myVariable = $(this).val();
    if(/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|www\.)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(myVariable)){
        $(this).addClass("validated_ok").removeClass("cf_required")
    } else {
        $(this).removeClass("validated_ok").addClass("cf_required");
    }
});
    
задан Peesen87 02.09.2013 в 09:58
источник
  • Просмотр этого сообщения: stackoverflow.com/questions/833469/regular-expression-for-url –  etoxin 02.09.2013 в 10:01

5 ответов

27

Удалите |www\. ?

^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$
    
ответ дан Ant P 02.09.2013 в 10:00
источник
  • Объяснение пожалуйста! –  Pratik C Joshi 14.12.2015 в 18:03
1

просто измените ваше регулярное выражение, чтобы сделать http (s) обязательным

/^http(s)?:\/\/(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test('www.google.com')
    
ответ дан DGS 02.09.2013 в 10:01
источник
0

Это будет работать:

(?<Protocol>\w+):\/\/(?<Domain>[\[email protected]][\w.:@]+)\/?[\w\.?=%&=\[email protected]/$,]*

Надеюсь, это поможет вам.

    
ответ дан EdsonF 12.10.2013 в 10:38
источник
0

Более короткий путь:

(\w*\W*)?\w*(\.(\w)+)+(\W\d+)?(\/\w*(\W*\w)*)*

Вы можете проверить его в этом замечательном редакторе регулярных выражений: Ссылка

    
ответ дан Raphael 16.01.2016 в 17:51
источник
  • кажется неточным, взгляните на regexr.com/3fpd6 –  Can 19.04.2017 в 18:07
0
^http(s?):\/\/(www\.)?(((\w+(([\.\-]{1}([a-z]{2,})+)+)(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*$)|(\w+((\.([a-z]{2,})+)+)(\:[0-9]{1,5}(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*$)))|(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(([0-9]|([1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]+)+)(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*)((\:[0-9]{1,5}(\/[a-zA-Z0-9\_\=\?\&\.\#\-\W]*)*$)*))$
In this http is mandatory and it can take port and sub resources also.
e.g http://example.com
    https://example.qwerty.com/id
    https://example.com:8989
    http://example.qwerty.com:8989/id
    https://10.1.1.1/id
    https://10.1.1.1:9090/id
    
ответ дан Balgopal Prusty 31.07.2017 в 12:44
источник