Жодна з існуючих відповідей не здавалася досить компактною для простоти запиту. Перевірку, чи має поле введення файлу розширення з набору, можна виконати наступним чином:
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, '\\.')
Є , щоб уникнути точок для регулярного виразу , так що основні розширення можуть бути передані в системі без точок , відповідних будь-якого символ.
Немає помилок при їх перевірці, щоб вони були короткими, імовірно, якщо ви їх використовуєте, ви переконаєтесь, що спочатку введення існує, а масив розширень дійсний!