SORU
20 AĞUSTOS 2009, PERŞEMBE


Doğrulamaya çalışıyorum URL JavaScript Kullanarak

URL ve ekran mesajı doğrulamak istiyorum. Aşağıda benim kod:

$("#pageUrl").keydown(function(){
        $(".status").show();
        var url = $("#pageUrl").val();

        if(isValidURL(url)){

        $.ajax({
            type: "POST",
            url: "demo.php",
            data: "pageUrl="  url,
            success: function(msg){
                if(msg == 1 ){
                    $(".status").html('<img src="images/success.gif"/><span><strong>SiteID:</strong>12345678901234456</span>');
                }else{
                    $(".status").html('<img src="images/failure.gif"/>');
                }
            }
            });

            }else{

                    $(".status").html('<img src="images/failure.gif"/>');
            }

    });


function isValidURL(url){
    var RegExp = /(ftp|http|https):\/\/(\w :{0,1}\w*@)?(\S )(:[0-9] )?(\/|\/([\w#!:.? =&%@!\-\/]))?/;

    if(RegExp.test(url)){
        return true;
    }else{
        return false;
    }
} 

Benim sorunum şimdi düzenli ifade ile eşleşen kadar uygun bir URL girmek bile bir hata iletisi gösterir, ve eğer URL "http://wwww" gibi bir şey olup olmadığını bile doğru dönün.

Tavsiyeniz için teşekkür ederim.

CEVAP
20 AĞUSTOS 2009, PERŞEMBE


Pratik URL düzenli ifade kullanarak ayrıştırmak için değil. RFC1738 kurallarının tam olarak uygulanması çok uzun bir düzenli ifade (mümkün olduğunu varsayarak) neden olur. Kesinlikle geçerli ifadeniz çok geçerli bir URL, başarısız ve geçersiz olanları geçirir.

Bunun yerine:

bir. aslında gerçek kurallara uygun bir URL parser kullanın. (JavaScript için bir bilmiyorum; muhtemelen gereğinden fazla. Sunucu tarafında olsa) olabilir. Ya da,

b. sadece uzak trim başında veya sonunda boşluk, sonra kontrol var birini tercih ettiğiniz programları üzerine ön (genellikle ‘http:// "veya" https://’) ve bırakın. Ya da,

c. URL kullanmak ve HEAD isteği HTTP pm göndererek sonunda, örneğin ne yatıyor sunucu tarafı görmek için bir girişim. Eğer 404 veya bir bağlantı hatası alırsanız, muhtemelen yanlış.

eğer url gibi bir şey olup olmadığını bile doğru dön"". http://wwww

İşte bu kesinlikle son derece geçerli bir URL değil.

Eğer bir hostname ‘wwww’ aslında ama DNS aramak için başka seçeneğiniz var. böyle olup olmadığını kontrol etmek istiyorsanız Yine, bu sunucu tarafı kodu.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013
  • Qmusic Romania

    Qmusic Roman

    8 Temmuz 2011