2013-09-02 13 views
17

FunzionaURL convalida REGEX - URL solo valida con http: //

Ho un campo di inserimento per inserire l'URL di un sito web e voglio controllare e se l'URL è OK Darò il campo di input di una classe ("validated_ok") e rimuovere una classe ("cf_required") e se è sbagliato il contrario.

Problema

L'URL deve essere solo di destra, se è scritto con http://, ma in realtà la sua anche a destra con un solo www (www.google.ch). Come devo cambiare la regex?

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

Visualizza questo post: http://stackoverflow.com/questions/833469/regular-expression-for-url – etoxin

risposta

26

Rimuovere il |www\.?

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

Spiegazione per favore! –

1

basta cambiare la tua regex per rendere http (s) richiesto

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

Shorter modo:

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

È possibile verificare in questo editor regex meravigliosa: https://regex101.com/

+0

sembra impreciso, dai un'occhiata a 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