如何使用asp.net正则表达式验证器验证文件名

时间:2011-08-08 15:34:10

标签: asp.net regex validation

我有以下代码来验证使用正则表达式验证器输入的文件名 但即使输入正确的文件名格式,其命中错误说输入有效的文件名

<asp:TextBox ID="TxtFileName" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="FileNameRegularExpressionValidator" runat="server"
   ErrorMessage="Enter valid FileName"
   ControlToValidate="TxtFileName"
   ValidationExpression="^(\\[a-z_\-\s0-9\.]+)+\.(txt|gif|pdf|doc|docx|xls|xlsx)$">
</asp:RegularExpressionValidator>

1 个答案:

答案 0 :(得分:1)

目前,你的正则表达式要求文件名以反斜杠开头。此外,您的文件名可能只包含小写形式的字母。这是故意的吗?

此外,你正在重复你重复的小组,这是一个确定的秘诀,当有人输入一个长度超过几个字符的无效文件名时,你的服务器会被catastrophic backtracking瘫痪。

也许

ValidationExpression="(?i)^[\w\s0-9.-]+\.(txt|gif|pdf|doc|docx|xls|xlsx)$">

会更合适吗?