2013-09-02 10 views
17

Jak to działaURL Validation REGEX - URL tylko ważne z http: //

Mam pole wprowadzania aby wprowadzić adres URL strony internetowej i chcę sprawdzić i jeśli adres URL jest OK, dam pole wejściowe klasy ("validated_ok") i usuń klasę ("cf_required") i jeśli jest źle na odwrót.

Problem

URL powinien być po prostu w porządku, jeśli jest napisany z http:// ale faktycznie jej również prawo do sprawiedliwego www (www.google.ch). Jak muszę zmienić wyrażenie regularne?

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"); 
    } 
}); 
+3

Zobacz ten wpis: http://stackoverflow.com/questions/833469/regular-expression-for-url – etoxin

Odpowiedz

26

Zdjąć |www\.?

^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$ 
+1

Wyjaśnienie proszę! –

1

prostu zmienić regex zrobić http (s) wymagane

/^http(s)?:\/\/(www\.)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test('www.google.com') 
0

Krótsza droga:

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

Można go przetestować w tym wspaniałym edytorze regex: https://regex101.com/

+0

wydaje się niedokładne, zajrzyj na http://regexr.com/3fpd6 – Can

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