我有以下代码来验证使用正则表达式验证器输入的文件名 但即使输入正确的文件名格式,其命中错误说输入有效的文件名
<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>
答案 0 :(得分:1)
目前,你的正则表达式要求文件名以反斜杠开头。此外,您的文件名可能只包含小写形式的字母。这是故意的吗?
此外,你正在重复你重复的小组,这是一个确定的秘诀,当有人输入一个长度超过几个字符的无效文件名时,你的服务器会被catastrophic backtracking瘫痪。
也许
ValidationExpression="(?i)^[\w\s0-9.-]+\.(txt|gif|pdf|doc|docx|xls|xlsx)$">
会更合适吗?