Регулярное выражение для исключения типов файлов.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)$)([^.]+$)/

сломался:

  1. ^[^.]+$ соответствует любой строке без точки
  2. \.(?!(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);

надеюсь, это поможет вам!