Регулярное выражение для исключения типов файлов.exe и.Яш
Я использую jQuery File upload plugin, для придания значения опции accept files мне нужно регулярное выражение, которое расскажет, какие типы файлов должны быть ограничены. Мне нужно ограничить exe и js, которые я достиг, используя выражение ниже
(.|/)(!exe|!js)$
но это выражение не позволяло другим файлам, а затем я попытался добавить одно расширение, как показано ниже
(.|/)(!exe|!js|pdf)$
С вышеуказанным регулярным выражением оно принимает только pdf и не принимает exe и JS. Теперь мне нужно включить все расширения файлов, кроме exe и js. Будет трудно добавить все расширения к выражению. Можем ли мы упомянуть, как в выражении принимать другие типы файлов, кроме exe и js в аналогичном формате выше. Это регулярное выражение для JS.
спасибо,
Vinay
3 ответов
это позволит исключить .js
и .exe
в конце строки, но позвольте что-нибудь еще:
/^[^.]+$|\.(?!(js|exe)$)([^.]+$)/
сломался:
-
^[^.]+$
соответствует любой строке без точки -
\.(?!(js|exe)$)([^.]+$)
соответствует точке, только если за ней не следуетjs
илиexe
в конце строки.
следующие разрешено:
something.js.notjs
somethingelse.exee
/something.js/foo
следующие не допускаются:
jquery.js
outlook.exe
Примечание: исключение некоторых расширений файлов не является заменой безопасности, и даже если бы это были JS и EXE-файлы, это не будет полный черный список. Если целью исключения определенных расширений является защита сервера или ваши пользователи, рассмотрите белый список расширений и тщательную проверку данных файлов после загрузки.
вы хотите использовать (?!шаблон) синтаксис. Кроме того, указывая, что вы хотите сопоставить, вы не указываете, что должно совпадать. Так что это должно сделать трюк:
(\.|\/)(?!exe|js).*$
Это поговорка "Все, что точка (.) до тех пор, пока за ним не следует " exe " или "js", а затем сопоставьте все, что вы хотите после этого."
Я не знаю, эта работа или нет, но 99% это будет работать для вас, чтобы исключить этот exe или JS расширение использовать следующий шаблон
/\.(exe|js)$/ig
следующий код дает вам TRUE, когда файл находится в вашем черном списке. В противном случае дайте вам FALSE
var result = /\.(exe|js)$/ig.test(filename);
надеюсь, это поможет вам!