2013-04-05 116 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") 
      { 

      } 
     }