2013-05-14 21 views
5

Ich versuche URL in jQuery regular expression unter Verwendung von Code zu validieren. Es funktioniert gut mit http://www und https://wwwJquery Validierung zur Validierung der 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: -

Above Code Arbeit perfekt URL zu validieren. Diese Zeit meine Anforderung nur war http://www zu validieren und https://www

+0

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

+1

Subdomänen der dritten Ebene Domänen sind, die verwendet werden um den Inhalt Ihrer Website zu organisieren. ! also http: // wsww. ist eine gültige URL wie https: //mail.google.com ... – Kld

+0

@Khaled: danke. Jetzt habe ich. Es bedeutet, dass es gültige URL ist ... – Roopendra

Antwort

1

Ihr Muster ist definiert als

^(http:\/\/|someting else

also Any-URLs beginnen mit "http: //" wäre validat ed.

+0

es funktioniert gut für 'http: //'. – Roopendra

+1

Ja, ich meine, dass Any-URLs als "http: // [etw.] [Etw.] [Etw]" (etw für etwas) gut funktionieren –

0

try this --->

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

prüfen diese - http://docs.jquery.com/Plugins/Validation/Methods/url

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

Das ist besser als die angenommene Antwort. Keine Notwendigkeit, die Regex selbst zu schreiben und zu überprüfen + dies überprüft nicht nur auf http: // am Anfang der URL. – Ridz

2

Sie können Ihre Regex ändern, es gibt tatsächlich eine Wiederholung von Artikel dh http:\/\/|https:\/\/|www\.

Dieser Code für Sie funktionieren wird:

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

Sie möchten Ihre URL validieren:

Bitte übergeben Sie die URL in dieser Funktion, dann erhalten Sie wahr oder falsch.

die Funktion:

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

isUrl(yourURL); 
</script>