2011-11-06 18 views
0

我在javascript中有一個url,設置爲一個變量。像:將文件分類爲圖像的Javascript

var imageurl='example.com/test/real/image.jpg'; 

我想承認,如果這是一個圖像URL或沒有(與JPEG,JPG,GIF,PNG等結尾)。

我試過使用charAt,但沒有奏效。

什麼是返回1,如果它是一個圖像的URL和0否則使用JavaScript的最佳方式?

+0

http://stackoverflow.com/questions/680929/how -to-extract-extension-from-filename-string-in-javascript – david

+0

接受。我們現在可以關閉它。 – David19801

+5

您是否知道,在網絡上,文件擴展名完全沒有說明URL是否指向圖像?如果沒有其中一個結尾的URL返回一個圖像並且反過來有一個帶有**這樣的擴展的網址**,則返回除圖像外的任何內容是完全可能的。 – RoToRa

回答

3

我想要識別這是否是一個圖像url或不(以jpeg,jpg,gif,png等結尾)。

文件擴展名(如果有的話)對於URL是否指向圖像類型的資源沒有影響。這只是一些人用於靜態資源的慣例。

查看文件擴展名可能是不夠的,如果你只需要它作爲一般的啓發:

// User browser's built-in URL parsing to discard query string etc 
// 
var a= document.createElement('a'); 
a.href= url; 
var ext= a.pathname.split('.').pop().toLowerCase(); 
var mightbeimage= ext=='gif' || ext=='jpeg' || ext=='jpg' || ext=='png'; 

但精度只有這樣,才能找出一個URL指向的圖像是獲取該網址並看看有什麼回來。通常情況下,您可以通過向URL發出HEAD請求並查看響應中的標頭是否包含Content-Type: image/something來實現此目的。

你不能這樣做,直接從瀏覽器的JavaScript,但你可以做的是創造一個圖像元素,如果負載OK:

function checkImage(url, callback) { 
    var img= new Image(); 
    img.onload= function() { callback(true); } 
    img.onerror= function() { callback(false); } 
    img.src= url; 
} 

checkImage('http://www.google.co.uk/images/srpr/logo3w.png', function(isimage) { 
    if (isimage) 
     alert('Yes, it is an image'); 
    else 
     alert('Nope, not an image, or does not exist or other error'); 
}); 
3

在這裏你去:

var imageurl = 'example.com/test/real/image.jpg'; 
ext = imageurl.split('.').reverse()[0]; 
if (['jpg','gif','png'].indexOf(ext.toLowerCase()) > -1) { 
    console.log('true!'); 
} else { 
    console.log('false!'); 
} 
0

嘗試:

var fileName = "'example.com/test/real/image.jpg'"; 
alert(fileName.substring(fileName.lastIndexOf('.') + 1)); 

你得到你的文件擴展名。根據條件操縱它。

1

如果你只是從字符串搞清楚事情的辦法後,試試用下面:

var imageurl = "some.gif"; 
imageurl.match("(?:png|jpe?g|gif)$"); 
// returns ['gif'] 

這不是一個特別完整的或優雅的解決方案,但它的工作原理。