用于排除文件类型.exe和.js的正则表达式

Vin*_*nay 9 javascript regex jquery-file-upload

我正在使用JQuery File上传插件,为选项接受文件赋值我需要正则表达式,它将告诉我们要限制的文件类型是什么.我需要通过使用下面的表达式来限制我实现的exe和js

(\.|\/)(!exe|!js)$

但这是表达式不允许其他文件,然后我尝试添加一个扩展如下

(\.|\/)(!exe|!js|pdf)$

使用Above正则表达式,它只接受pdf而不接受exe和JS.现在我需要启用除exe和js之外的所有文件扩展名.将所有扩展添加到表达式将很困难.我们可以在表达式中提到一些如何接受除上面类似格式的exe和js之外的其他文件类型.这个正则表达式适用于JS.

谢谢,

维奈

eye*_*ess 15

这样就可以排除.js,并.exe在字符串的结束,而是让别的:

/^[^.]+$|\.(?!(js|exe)$)([^.]+$)/
Run Code Online (Sandbox Code Playgroud)

细分:

  1. ^[^.]+$ 匹配任何没有点的字符串
  2. \.(?!(js|exe)$)([^.]+$)仅当字符串后面js或后面没有点时才匹配点exe.

允许以下内容:

  • something.js.notjs
  • somethingelse.exee
  • /something.js/foo

以下是不允许的:

  • jquery.js
  • outlook.exe

注意:排除某些文件扩展名不能代替安全性,即使它是JS和EXE文件也不是一个全面的黑名单.如果您排除某些扩展名的目的是保护您的服务器或用户,请考虑上传后的白名单扩展名和文件数据的完整验证.