我正在尝试上传扩展名为.pdf或.xls的文件 我想从文件名中排除.sh .exe,.js或.bat扩展名,这些扩展名是文件名的末尾或文件名之间 例如filename.exe.pdf我希望将其排除
([a-zA-Z0-9\s_\\.\-:])(?!(exe|sh|js|bat))+(.pdf|.xls)$
使用上述模式,如果文件名是file.pdf,则可以接受,但我想如果文件名是filename.exe.pdf,则应排除exe文件名
目前使用这种模式,直到e.pdf匹配filename.exe.pdf为止。
答案 0 :(得分:1)
您可以使用
/^(?!.*(?:\.(?:exe|sh|js|bat)(?:\.|$))).*\.(?:pdf|xls)$/i
详细信息
^
-字符串开头(?!.*(?:\.(?:exe|sh|js|bat)(?:\.|$)))
-之后没有
.*
-除换行符以外的任意0+个字符,并且尽可能多\.
-点(?:exe|sh|js|bat)
-列出的任何扩展名(?:\.|$)
-字符串的点或结尾.*
-除换行符以外的任意0+个字符,并且尽可能多\.
-点(?:pdf|xls)
-pdf
或xls
$
-字符串结尾答案 1 :(得分:1)
答案 2 :(得分:0)
您可以这样做:
var file = files[0], type = file.type;
if(type.match(/\.(pdf|xls)$/)){
// only if .pdf or .xls
}