【问题标题】:How to validate filename in jQuery-Validation-Engine?如何在 jQuery-Validation-Engine 中验证文件名?
【发布时间】:2020-06-29 07:51:53
【问题描述】:

如何在 jQuery-Validation-Engine 中验证除下划线 (_) 外不允许特殊字符的文件名?

我尝试了这些正则表达式:/^[a-zA-Z\d._]*$//^[a-zA-Z0-9_]+$/,但没有运气。正则表达式基于https://regexr.com/ 有效

这是我的示例:

"validFileName": {
  "regex": /^[a-zA-Z\d._]*$/,
  "alertText": "* Invalid filename"
},
            

输入标签:

<input type="file" name="attachment" id="attachment" class="validate[required, custom[validFileName]]"/>

【问题讨论】:

  • 也许这会起作用/^[a-zA-Z_]+$/
  • . 表示任何字符 - 所以你说过:a 到 z 上/下,任何数字或任何其他字符
  • 您如何添加validFileName 以及您如何使用它?
  • 请查看我的更新,我是如何在输入类型上使用它的。
  • @Carsten Løvbo Andersen,根据您的正则表达式,它将只接受带下划线的文本。试过了还是不行

标签: jquery jquery-validation-engine


【解决方案1】:

尝试使用这个正则表达式模式-([a-zA-Z\d._])\w+

并将输入元素中的类更改如下-

class="validate[required,custom[email]] text-input"

还可以查看此以供参考以创建自定义规则-How to create simple custom rule?

【讨论】:

  • 问题不在于正则表达式(而你的 still 作为. 允许任何字符) - 这是 jquery-validation-engine 不适用于 @ 987654325@
  • 我想到了使用 javascript 代码 (e.target.files[0].name) 获取文件名的想法,然后才将其重新发明为 jquery-validation-engine,这可能吗?但我不知道如何在脚本上申请。
  • 顺便说一下@praveen,您的答案是针对 jQuery Validate Plugin。但感谢您的提醒。
【解决方案2】:

我终于明白了。我会把它贴在这里以防有人需要它。我使用了调用函数:

html:

<input class="validate[required, funcCall[validFilename]]" type="file" name="attachment" id="attachment" />

脚本:

function validFilename(field, rules, i, options) {
    var uploadedFile = $(field);
    
    if (uploadedFile) {
    var extensions = rules[i + 1];               
    var mimeFilter = new RegExp(extensions);
    var file = document.getElementById('attachment').files[0].name;
    var pattern = new RegExp(/^[a-zA-Z0-9_.]+$/);
    
         if (!pattern.test( file ) ) {
              return '"' + file +  '" filename is invalid. No special character allowed.';
         }
        
    }

}

这是我的工作代码:https://jsfiddle.net/26jkLhr9/

我知道这不是最好的答案,但它确实有效!如果您有更好更干净的想法,欢迎在此处添加。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多