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
工作时失败
我是否使用了错误的验证表达式。我想允许任何扩展名如上所述的文件名。
尝试这个
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的解决方案肯定会为您做到这一点。