2013-08-21 16 views
5

miałem następujące wyrażenia regularnego sprawdzania poprawności URL:JavaScript regex walidacji URL

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

To z dopiskiem: Regular expression for URL validation (in JavaScript)

działa to dobrze w tym takich przypadkach http://localhost:8080, ale także sprawdza poniżej tych, które nie chcę. powyższe regex nie powinny przechodzić poniższych linków

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

łaskawie pomóc jak jestem noobem w regex

drugie pytanie, chociaż nie wiąże się z pytaniem, ale regex jest, kiedy walidacji wartości null i undefined przeciwko regex /^ [A-Z] + $/i dostanę prawdziwe. Czy to jest domyślne zachowanie, czy też czegoś tu brakuje?

+0

co rozumiesz przez porażkę? są one oznaczone jako ważne lub nieważne? –

+0

sprawdź to - http://stackoverflow.com/a/8234912/1823389 –

+2

To było tak bite na śmierć. Proszę, PROSZĘ, wyszukaj przed zadawaniem pytań. – coreyward

Odpowiedz

8

Spróbuj

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

wywołać funkcję is_valid_url(YOUR_WEBSITE_URL) wszędzie którego chcesz stronie zatwierdź.

+1

Odrzucanie dla przypadku 1 i http: // localhost: 8080 – hellojava

+0

Ok, sprawdzam to teraz – Chinmay235

+0

{2,4} nie obejmuje dużej liczby domen TLD, szczególnie tych nowych, które właśnie wyszły. Zobacz http://data.iana.org/TLD/tlds-alpha-by-domain.txt, używając {2,22}. –

2

Try This ..

<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

Zbudowałem this regex sprawdzania IP i DNS 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})?(\/.*)?$/