【问题标题】:Blueimp jQuery File Upload Audio/Video restrictionBlueimp jQuery 文件上传音频/视频限制
【发布时间】:2016-08-22 13:47:15
【问题描述】:

谁能告诉我如何限制使用 Blueimp jQuery 文件上传的音频/视频文件上传?

我使用以下选项 acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, 找到了白名单,但我想将音频和视频文件列入黑名单而不是白名单。

我尝试了以下方法来否定 .exe 和 .js 文件acceptFileTypes: /(\.|\/)(?!exe|js)$/i,这限制了所有文件类型,无论其扩展名如何。

提前致谢

【问题讨论】:

    标签: javascript regex regex-negation blueimp regex-lookarounds


    【解决方案1】:

    你把$放在了错误的地方。如果您想查找除.exe.js 之外的任何内容,请使用

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

    Regex Demo

    原因:- 前瞻是零宽度断言。这意味着它们不消耗任何字符。在你的正则表达式中

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

    您正在使用前瞻检查 . 之后的 exejs。一旦检查,位置就会在. 之后重置。现在您的正则表达式正在使用$ 检查它是否是字符串的结尾。但是还有一个字符,所以它不是字符串的结尾,你的正则表达式对于任何扩展都会失败。

    下面,有一些视觉可以解释你的正则表达式(\.|\/)(?!exe|js)$ 对于字符串abcd.jpg(为了清楚起见,空格)

        abcd .  jpg
            ^^  ^^ 
            ||  ||
    (Matches .) (New position after consuming .)
    

    . 之后的内容是 jpg,不应与 exejs 匹配 到此为止

    由于前瞻的宽度为零,因此在检查后面的内容既不是exe 也不是js 后,位置保持在原处

     abcd . jpg
            ^^
            ||
     Check whether its $ i.e. end of string. This is False because we have j. So no match is returned
    

    如果你想将音视频文件加入黑名单,这里是入门

    (?:[.\\])(?!(mp3|m4a|wmv|mp4|mkv)$)\w+
    

    Regex Demo

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-05
      • 2012-05-03
      • 1970-01-01
      • 2019-03-25
      • 2018-02-19
      • 1970-01-01
      • 2012-12-25
      • 1970-01-01
      相关资源
      最近更新 更多