首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >排除文件名的正则表达式

问排除文件名的正则表达式
EN

Stack Overflow用户
提问于 2019-06-10 07:38:20
回答 3查看 1.3K关注 0票数 4

我正在尝试上传扩展名为.pdf或.xls的文件,我希望从文件名中排除.sh .exe、.js或.bat扩展名--这些都是文件名的末尾或文件名ex之间的扩展名。filename.exe.pdf,我想把它排除在外

代码语言:javascript
复制
([a-zA-Z0-9\s_\\.\-:])(?!(exe|sh|js|bat))+(.pdf|.xls)$

使用上面的模式,如果文件名是file.pdf,那么它是可以接受的,但是如果文件名是filename.exe.pdf,那么它应该是排除exe文件名。

目前与此模式匹配,直到e.pdf for filename.exe.pdf为止。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-10 08:02:07

Try:

代码语言:javascript
复制
^(?:[a-zA-Z0-9\s_\\.\-:](?!\.(?:exe|js|bat|sh)\.))+?(?:\.pdf|\.xls)$

演示和图表

​

​

票数 1
EN

Stack Overflow用户

发布于 2019-06-10 08:01:06

你可以用

代码语言:javascript
复制
/^(?!.*(?:\.(?:exe|sh|js|bat)(?:\.|$))).*\.(?:pdf|xls)$/i

见regex演示和正则图

​

​

​

​

详细信息

  • ^ -字符串启动
  • (?!.*(?:\.(?:exe|sh|js|bat)(?:\.|$))) --这与不相随
    • .* -除换行字符以外的任何0+字符,尽可能多
    • \. -点
    • (?:exe|sh|js|bat) -列出的任何扩展
    • (?:\.|$) -字符串的点或尾

​

  • .* -除换行字符以外的任何0+字符,尽可能多
  • \.-点
  • (?:pdf|xls) - pdf或xls
  • $ -字符串的结尾
票数 2
EN

Stack Overflow用户

发布于 2019-06-10 07:56:14

你可以这样做:

代码语言:javascript
复制
 var file = files[0], type = file.type;
 if(type.match(/\.(pdf|xls)$/)){
   // only if .pdf or .xls
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56522363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档