2013-05-14 5 views
5

Sto tentando di convalidare l'URL in jQuery regular expression utilizzando il codice riportato di seguito. Si sta lavorando bene con http://www e https://wwwConvalida Jquery per convalidare l'URL

var myVariable = "http://www.example.com/2013/05/test-page-url-512-518.html"; 

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)){ 
    alert("valid url"); 
} else { 
    alert("invalid url"); 
} 

Edit: -

Sopra lavoro codice perfettamente per convalidare URL. Quella volta la mia esigenza era solo per convalidare http://www e https://www

+0

http://stackoverflow.com/questions/2723140/validating-url-with-jquery-without-the-validate-plugin –

+1

sottodomini sono i domini di terzo livello che vengono utilizzati per organizzare il contenuto del tuo sito web. ! così http: // wsww. è un url valido come https: //mail.google.com ... – Kld

+0

@Khaled: grazie. Ora ho capito. Significa che è url valido ... – Roopendra

risposta

1

vostro modello è definito come

^(http:\/\/|someting else

quindi any-urls inizia con "http: //" sarebbe validat ed.

+0

sta funzionando bene per 'http: //'. – Roopendra

+1

sì, voglio dire che any-urls come "http: // [sth]. [Sth]. [Sth]" (sth per qualcosa) funzionerà bene –

0

provare questo --->

var myVariable = "http://www.Test.com/"; 
if(/^([a-z]([a-z]|\d|\+|-|\.)*):(\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?((\[(|(v[\da-f]{1,}\.(([a-z]|\d|-|\.|_|~)|[!\$&'\(\)\*\+,;=]|:)+))\])|((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=])*)(:\d*)?)(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*|(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)|((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)){0})(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(myVariable)) { 
    alert("valid url"); 
} else { 
    alert("invalid url"); 
} 
8

Scegli questa - http://docs.jquery.com/Plugins/Validation/Methods/url

$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     url: true 
    } 
    } 
}); 
+1

Questo è meglio della risposta accettata. Non è necessario scrivere e verificare la regex da soli + questo non solo controlla http: // all'inizio dell'URL. – Ridz

2

È possibile modificare la Regex, in realtà v'è una ripetizione di elemento cioè http:\/\/|https:\/\/|www\.

Questo codice funzionerà per voi:

var myVariable = "http://www.example.com/2013/05/test-page-url-512-518.html"; 

if(/^(http:\/\/www\.|https:\/\/www\.)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(myVariable)){ 
    alert("valid url"); 
} else { 
    alert("invalid url"); 
} 
1

si desidera convalidare il tuo URL:

prega passare l'URL in questa funzione quindi questo ti darà true OR false.

La funzione:

<script> 
function isUrl(s) { 
    var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ 
    return regexp.test(s); 
} 

isUrl(yourURL); 
</script>