Dosya uzantısını kontrol etmek için şöyle düzenli bir ifade kullanabilirsiniz:
function checkURL(url) {
return(url.match(/\.(jpeg|jpg|gif|png)$/) != null);
}
Bu, URL'nin bu dört uzantıdan birinde bitip bitmediğini kontrol eder.
Web sayfasının etki alanı dışında ajax kullanamadığınız için, web sayfasındaki aynı etki alanında olmayan bir URL'nin içerik türünü doğrulamak için istemcideki javascript öğesinden hiçbir şekilde emin değilim. . Bildiğim kadarıyla, URL'yi bir sunucu işlemine göndermeniz ve görüntüyü indirmeniz, içerik türünü almanız ve size geri göndermeniz gerekir.
Fakat, bir resim etiketi böyle bir işlevi kullanarak URL'yi yüklediğini görmek için kontrol edebilirsiniz: Bu fonksiyon iki argüman ile bazı gelecekteki zaman geri arama arayacak
function testImage(url, callback, timeout) {
timeout = timeout || 5000;
var timedOut = false, timer;
var img = new Image();
img.onerror = img.onabort = function() {
if (!timedOut) {
clearTimeout(timer);
callback(url, "error");
}
};
img.onload = function() {
if (!timedOut) {
clearTimeout(timer);
callback(url, "success");
}
};
img.src = url;
timer = setTimeout(function() {
timedOut = true;
// reset .src to invalid URL so it stops previous
// loading, but doesn't trigger new load
img.src = "//!!!!/test.jpg";
callback(url, "timeout");
}, timeout);
}
: Orijinal URL ve bir sonuç ("başarı", "hata" veya "zaman aşımı"). Birkaç URL'ler üzerinde bu işi görebilir, bazı iyi ve bazı burada, kötü:
function testImage(url, timeoutT) {
return new Promise(function (resolve, reject) {
var timeout = timeoutT || 5000;
var timer, img = new Image();
img.onerror = img.onabort = function() {
clearTimeout(timer);
reject("error");
};
img.onload = function() {
clearTimeout(timer);
resolve("success");
};
timer = setTimeout(function() {
// reset .src to invalid URL so it stops previous
// loading, but doesn't trigger new load
img.src = "//!!!!/test.jpg";
reject("timeout");
}, timeout);
img.src = url;
});
}
: Bu şimdi Promises çağı olduğundan,
http://jsfiddle.net/jfriend00/qKtra/
Ve burada bir söz döndüren bir versiyonu
Ve jsFiddle demosu: http://jsfiddle.net/jfriend00/vhtzghkd/
Yani bir dizede bir url ** doğru uzantıyla bitip bitmediğini doğrulamak ister misiniz? Ardından resmin içeriğini okumak ister misiniz? – gideon
@gideon evet Doğru uzantı ile bir dize istiyorum ama emin değilim ya da değil mi ve bu yüzden url –
içerik türünü kontrol etmek istiyorum Bu soru 3 parça içeriyor, geçerli bir URL olduğunu doğrulayın ? bir resim uzantısı olduğunu doğrulayın görüntünün içeriğini doğrulayın –