ASP.net - RegEx Validator控件在FireFox中不起作用

时间:2011-07-11 13:39:10

标签: asp.net regex firefox validation

适用于IE和Chrome。在Google上找不到任何帮助。基本上,它只是检查在FileUpload控件中选择的文件的扩展名。

以下是代码:

        <asp:FileUpload ID="FileUpload1" runat="server" Width="450" />
       <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Invalid file type."
ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.pdf|.txt|.doc|.csv|.xls|.xlsx)$" 
ControlToValidate="FileUpload1" Display="Dynamic">
</asp:RegularExpressionValidator>

2 个答案:

答案 0 :(得分:4)

因此文件路径加载器中的文件路径中还有其他字符,请尝试使用此正则表达式

(.*\.(pdf|txt|doc|csv|xls|xlsx)$)

您的RegularExpressionValidator看起来像

<asp:RegularExpressionValidator id="revImage" runat="server"
   ErrorMessage="Please Upload the Valid document File" Text="*" Display="Dynamic"
   ValidationExpression=
      "(.*\.(pdf|txt|doc|csv|xls|xlsx)$)"
   ControlToValidate="fileUploaderId"> </asp:RegularExpressionValidator>

答案 1 :(得分:1)

正则表达式限制性太强。我不确定为什么它在IE&amp; Chrome但不适用于Firefox。也许Firefox正在剥离文件名的路径?

你的注册表试图匹配一个完整的Windows文件路径,所以如果名称看起来不像那样会失败,比如你使用的是Mac,Linux机器或浏览器预先剥离了名称的路径

如果您将其更改为:

`。(pdf | txt | doc | csv | xls | xlsx)$'它只能确保名称以批准的扩展名结尾(这只是对@waqas发布的内容略有改进)

西蒙