0

下面我有 3 个 javascript 函数,它们检查其文件的合法文件扩展名。问题是,如果我按照我实现它的方式进行操作,我将为每个函数提供一个非常大的 case 语句,说明哪些文件扩展名是合法使用的。所以我的问题是除了做

`case:jpeg: 
case:jpg:
case:png`

等等。有没有一种快速的方法来创建一个案例陈述来检查所有合法的图像文件扩展名类型、所有合法的视频文件扩展名类型和所有合法的音频文件扩展名类型?

以下是我目前用于验证图像、视频和音频的文件扩展名类型的 3 个 javascript 函数:

图片:

   function imageValidation(imageuploadform) {

        var val = $(imageuploadform).find(".fileImage").val();
        switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
            case 'gif':
            case 'jpg': 
            case 'jpeg':
            case 'pjpeg':
            case 'png':
                 return true;

            case '':
                $(imageuploadform).find(".fileImage").val();
                alert("To upload an image, please select an Image File");
                return false;

            default:
                alert("To upload an image, please select a valild file extension.");
                return false;

        }

        return false;

}

视频:

function videoValidation(videouploadform) {

    var val = $(videouploadform).find(".fileVideo").val();
    switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
        case 'mpg':
        case 'mov': 
        case 'wmv':
        case 'rm':
        case '3g2':
        case '3gp':
        case 'm2v':
        case 'm4v':
             return true;

        case '':
            $(videouploadform).find(".fileVideo").val();
            alert("To upload an video, please select an Video File");
            return false;

        default:
            alert("To upload an video, please select a valild file extension.");
            return false;

    }

    return false;

}

声音的:

  function audioValidation(audiouploadform) {

        var val = $(audiouploadform).find(".fileAudio").val();
        switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
            case 'wav':
            case 'aif': 
            case 'mp3':
            case 'mid':
                 return true;

            case '':
                $(audiouploadform).find(".fileAudio").val();
                alert("To upload an audio, please select an Audio File");
                return false;

            default:
                alert("To upload an audio, please select a valild file extension.");
                return false;

        }

        return false;


}

还有谁知道能够检查所有图像文件类型、视频文件类型和音频文件类型的 php 等效项是什么,因为我还需要对文件类型进行服务器端验证。我只想知道是否有比列出所有可能的图像、视频和音频文件类型更快的方法。

4

1 回答 1

1
function checkFileExtension(AcceptableFileNamesRegex, fileName){
  var pattern = AcceptableFileNamesRegex;
  return pattern.test(fileName);
}

var regex = /wav|aif|mp3|mid/

checkFileExtension(regex, "myWav.wav")
于 2012-05-02T00:02:53.343 回答