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 に答える