如何在jQuery验证引擎中验证文件名?

如何在jQuery验证引擎中验证文件名?,jquery,jquery-validation-engine,Jquery,Jquery Validation Engine,如何在jQuery验证引擎中验证文件名,除了下划线(\uu)之外,不允许使用任何特殊字符 我尝试了这些正则表达式:/^[a-zA-Z\d.\]*$/和/^[a-zA-Z0-9\]+$/,但运气不好。正则表达式的有效性基于 这是我的样本: “validFileName”:{ “正则表达式”:/^[a-zA-Z\d.307;]*$/, “alertText”:“*文件名无效” }, 输入标签: <input type="file" name="attachmen

如何在jQuery验证引擎中验证文件名,除了下划线(
\uu
)之外,不允许使用任何特殊字符

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

这是我的样本:

“validFileName”:{
“正则表达式”:/^[a-zA-Z\d.307;]*$/,
“alertText”:“*文件名无效”
},
输入标签:

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

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

并更改输入元素中的类,如下所示-

class=“验证[必需,自定义[电子邮件]]文本输入”


另外,我还要看看这个,以供创建自定义规则时参考-

我终于找到了它。如果有人需要,我会把它贴在这里。我使用了call函数:

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.';
         }
        
    }

}
这是我的工作代码:


我知道这不是最好的答案,但它奏效了!如果你有更好更清晰的想法,欢迎你将其添加到这里。

也许这会起作用。
/^[a-zA-Z_]+$/
表示任何字符-所以你说:a到Z上/下,任何数字或任何其他字符您如何添加
validFileName
以及如何使用它?请查看我对输入类型使用它的更新。@Carsten Løvbo Andersen,根据您的正则表达式,它将只接受带下划线的文本。已经尝试过了,仍然没有运气问题不是regex(你的问题仍然是
允许任何字符)-而是jquery验证引擎不能使用
type='file'
我想到了使用javascript代码(e.target.files[0].name)获取文件名,然后才将其重新创建到jquery验证引擎,可能吗。但是我不知道如何在脚本中应用。顺便说一下@praveen您的答案是jQuery验证插件。但是谢谢你的提醒。