Tak satu pun dari jawaban yang ada tampaknya cukup kompak untuk kesederhanaan permintaan. Memeriksa apakah bidang masukan file yang diberikan memiliki ekstensi dari satu set dapat dilakukan sebagai berikut:
function hasExtension(inputID, exts) {
var fileName = document.getElementById(inputID).value;
return (new RegExp('(' + exts.join('|').replace(/\./g, '\\.') + ')$')).test(fileName);
}
Jadi penggunaan contoh mungkin (di mana upload
adalah id
sebuah masukan file):
if (!hasExtension('upload', ['.jpg', '.gif', '.png'])) {
}
Atau sebagai plugin jQuery:
$.fn.hasExtension = function(exts) {
return (new RegExp('(' + exts.join('|').replace(/\./g, '\\.') + ')$')).test($(this).val());
}
Contoh penggunaan:
if (!$('#upload').hasExtension(['.jpg', '.png', '.gif'])) {
}
The .replace(/\./g, '\\.')
ada untuk melarikan diri dot untuk regexp sehingga ekstensi dasar dapat berlalu tanpa titik-titik yang cocok karakter apapun.
Tidak ada kesalahan memeriksa ini untuk membuatnya tetap pendek, mungkin jika Anda menggunakannya, Anda akan memastikan input ada terlebih dahulu dan array ekstensi valid!