Javascript将文件分类为图像

Javascript to classify files as images

本文关键字:图像 分类 文件 Javascript      更新时间:2023-09-26

我在javascript中有一个url,设置为变量。如:

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

我正在尝试识别这是否是一个图像url(以jpeg, jpg, gif, png等结尾)。

我尝试使用charAt,但它不工作。

什么是最好的方式来返回1,如果它是一个图像url和0,否则使用javascript?

我正在尝试识别这是否是一个图像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并查看返回的内容。通常,您可以通过向URL发出HEAD请求并查看响应中的头是否包含Content-Type: image/something

你不能直接从浏览器的JavaScript中做到这一点,但你可以做的是创建一个image元素,看看是否加载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');
});

给你:

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!');
}

如果您只是在寻找一种从字符串中找出内容的方法,请尝试使用以下方法:

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

这不是一个特别完整或优雅的解决方案,但它可以工作。

使用lastIndexOfsubstring来获得文件扩展名,并将其与您感兴趣的不同图像类型进行比较。

try:

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

得到文件扩展名。按条件操作它。