Таким образом, основная идея состоит в том, что этот код использует файловые объекты, для получения дополнительной информации о них см .:
Как указано в w3 , атрибут type
объекта File имеет тип MIME. Это определено в RFC 2046 . Но сама спецификация - не самая интересная часть, более интересным является список существующего типа MIME здесь или наиболее используемого здесь .
В этом коде они используют атрибут type
и выполняют для него регулярное выражение (см. match и RegExp для получения дополнительной информации). Их регулярное выражение говорит, что все в порядке, если тип содержит image
.
Чтобы сделать свой собственный селектор, вам нужно объединить все вышеперечисленное. (некоторые из примеров используют === вместо match, потому что тип mime - это весь тип)
Например, возможна следующая проверка:
- документ (не только pdf, например, этот тип также может иметь тип):
input.files[0].type==='application/pdf'
- аудио:
input.files[0].type.match('audio.*')
- видео:
input.files[0].type.match('video.*')
и т. Д.
После этого вы можете использовать селектор для атрибута name
файла, если вы хотите соответствовать только определенному расширению (например, для проверки между различными типами документов, вы можете посмотреть, является ли это .pdf, .odt ...) используя, например, input.files[0].name.match('\.pdf')
.
Но имхо это не советуется, так как пользователь может легко поиграть с этим (удалив или изменив их).