2013-08-21 20 views
5

Ich hatte die folgende URL-Validierung regex:Javascript URL-Überprüfung regex

/(ftp | https?): // [^ „] +/$

Diese vom ref: Regular expression for URL validation (in JavaScript)

Diese

funktioniert auch in Fällen wie http://localhost:8080, aber es bestätigt auch die unten diejenigen, die möchte ich nicht. die obige regex sollte nicht passieren die unter Urls

1. http://www.example..com 
2. http://.com 
3. http://. 
4. http://www.example. 

Bitte helfen, wie ein noob ist in regex

Zweiter Frage, wenn auch nicht auf die Frage verwandt, aber regex ist, wenn ich null und undefined gegen die regex Validierung/^ [a-z] + $/i i wahr zu bekommen. Ist das das Standardverhalten oder fehlt mir hier etwas?

+0

was meinst du mit scheitern? Sind sie als gültig oder ungültig gekennzeichnet? –

+0

überprüfen Sie das - http://Stackoverflow.com/a/8234912/1823389 –

+2

Dies wurde so zu Tode erschlagen. Bitte, bitte, suchen Sie, bevor Sie Fragen stellen. – coreyward

Antwort

8

Versuchen Sie, diese

function is_valid_url(url) 
{ 
    return url.match(/^(ht|f)tps?:\/\/[a-z0-9-\.]+\.[a-z]{2,4}\/?([^\s<>\#%"\,\{\}\\|\\\^\[\]`]+)?$/); 
} 

Rufen Sie die is_valid_url(YOUR_WEBSITE_URL) Funktion überall, die Sie zur Website überprüfen möchten. Diese

+1

Fehler für Fall 1 und http: // localhost: 8080 – hellojava

+0

Ok, ich überprüfe es jetzt – Chinmay235

+0

{2,4} deckt nicht eine große Anzahl von TLDs ab, besonders alle neuen, die gerade herausgekommen sind. Siehe http://data.iana.org/TLD/tlds-alpha-by-domain.txt mit {2,22} würde decken die meisten. –

2

Versuchen ..

<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 
 
<script src="http://jqueryvalidation.org/files/dist/jquery.validate.min.js"></script> 
 
<script src="http://jqueryvalidation.org/files/dist/additional-methods.min.js"></script> 
 
<script> 
 
// just for the demos, avoids form submit 
 
jQuery.validator.setDefaults({ 
 
    debug: true, 
 
    success: "valid" 
 
}); 
 
$("#myform").validate({ 
 
    rules: { 
 
    field: { 
 
     required: true, 
 
     url: true 
 
    } 
 
    } 
 
}); 
 
</script>

0

Ich baute this regex IP- und DNS-Validierung für Javascript.

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