既存の回答はどれも、リクエストを単純化するのに十分コンパクトに見えませんでした。特定のファイル入力フィールドにセットからの拡張子があるかどうかの確認は、次のように実行できます。
function hasExtension(inputID, exts) {
var fileName = document.getElementById(inputID).value;
return (new RegExp('(' + exts.join('|').replace(/\./g, '\\.') + ')$')).test(fileName);
}
使用例は、(かもしれないので、どこupload
でid
、ファイル入力の):
if (!hasExtension('upload', ['.jpg', '.gif', '.png'])) {
}
またはjQueryプラグインとして:
$.fn.hasExtension = function(exts) {
return (new RegExp('(' + exts.join('|').replace(/\./g, '\\.') + ')$')).test($(this).val());
}
使用例:
if (!$('#upload').hasExtension(['.jpg', '.png', '.gif'])) {
}
ザ・ .replace(/\./g, '\\.')
基本的な機能拡張は、任意の文字にマッチドットせずに渡すことができるように、正規表現のためのドットをエスケープすることがあります。
これらを短くするためのエラーチェックはありません。おそらく、これらを使用する場合は、入力が最初に存在し、拡張配列が有効であることを確認します。