Fileupload对于asp.net中的某个文件名,正则表达式验证失败

本文关键字:文件名 正则表达式 验证 失败 asp 对于 net Fileupload | 更新日期: 2023-09-27 17:59:21

我使用fileupload控件上传文件,同时使用正则表达式验证文件名。

我想为.doc, .docx, .pdf上传以下文件扩展名,我使用以下命令到有效文件名

ValidationExpression="[a-zA-Z''].*(.doc|.DOC|.docx|.DOCX|.pdf|.PDF)$"

 <asp:FileUpload ID="FileUpload1" runat="server" CssClass="fileUpload" />
<asp:RequiredFieldValidator ID="ValidateF1" runat="server"  ErrorMessage="*" CssClass="row-validate"  ControlToValidate="FileUpload1"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="ValidateEx" runat="server"   ValidationExpression="[a-zA-Z''].*(.doc|.DOC|.docx|.DOCX|.pdf|.PDF)$" ControlToValidate="FileUpload1" ValidationGroup="Careers" ErrorMessage="*"></asp:RegularExpressionValidator>

无法验证以下文件名

(K)+J01461+abced+high+En+(HR)(1).pdf我不确定为什么它在为ABC_COMPANY_Privacy_v4.0_123456(5).pdf 工作时失败

我是否使用了错误的验证表达式。我想允许任何扩展名如上所述的文件名。

Fileupload对于asp.net中的某个文件名,正则表达式验证失败

尝试这个

ValidationExpression="^.*'.(doc|DOC|docx|DOCX|pdf|PDF)$"

它完全取决于您认为什么是有效的文件名。当前表达式仅捕获具有字母数字字符和字符''的文件名。

从您的两个示例中,您似乎希望包含()+_以及多个点,因此您可以通过将这些点添加到字符类中来修复表达式。

ValidationExpression="[_.a-zA-Z()+'']*'.(doc|DOC|docx|DOCX|pdf|PDF)$"

如果你也想包含空格字符,那么也可以把它放进去。

ValidationExpression="[_.a-zA-Z()+'' ]*'.*(doc|DOC|docx|DOCX|pdf|PDF)$"

如果您想在扩展之前允许所有可能的字符,那么使用Vignesh的解决方案肯定会为您做到这一点。