2013-04-05 108 views
0

这里是我的aspx代码:的RegularExpressionValidator始终显示错误消息

<asp:FileUpload ID="ImageUpload" runat="server" Style="margin-bottom: 5px" /> 
<br /> 
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
ErrorMessage="Only jpeg, png or gif files are allowed!" 
ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*)) 
+(.jpeg|.JPEG|.png|.PNG|.gif|.GIF)$" 
ControlToValidate="ImageUpload"></asp:RegularExpressionValidator> 

我只希望在我ImageUpload过滤JPEG,PNG和GIF文件。 但是,当我上传JPEG,PNG和GIF文件时,RegularExpressionValidator总是显示错误消息。我想知道我的代码中有什么问题!

+0

你是否试图用该正则表达式验证其他任何内容,或者你只是想断言该扩展是说图像格式? – rvalvik 2013-04-05 10:48:16

+0

尝试添加displaymode到动态 – 2013-04-05 10:50:19

+0

@rvalvik>它的图像上传:)只想获得图像格式! – zey 2013-04-05 10:50:55

回答

1

如果你想要的是断言扩展,那么你可以尝试这样的事:

\.(jpeg|JPEG|png|PNG|gif|GIF)$ 

这将匹配任何一个.随后上述任一扩展结束。

编辑:

没有尝试过它,并具有ASPX没有经验,我想你应该能够使用(?i:),使其不区分大小写:

(?i:\.jpeg|png|gif)$ 
0

你应该试试这个

protected void Button1_Click(object sender, EventArgs e) 
     { 
      string filename = fileUpload.PostedFile.FileName; 
      string extsn = Path.GetExtension(filename); 
      if (extsn.ToUpper() == ".JPEG" || extsn.ToUpper() == ".PNG" || extsn.ToUpper() == ".GIF") 
      { 

      } 
     }