2010-08-31 130 views
1

我試圖驗證的ASP TextBox只能有使用下面的正則表達式1-2位數(不爲零),最簡單的正則表達式:麻煩與

^[1-9]{1,2} 

此正則表達式不驗證,如果場是空的(假定它將由於1-2部分)

也試過^[1-9+]{1,2}無濟於事。

這是我的控件:

<asp:TextBox ID="txtInHour" 
      MaxLength="2" 
      runat="server" 
      Text='<%# Bind("InHour") %>' 
      Width="80"/> 


<asp:RegularExpressionValidator ID="rvInHour" 
       ControlToValidate="txtInHour" 
       Display="None" 
       ValidationExpression="^[1-9]{0,2}$" 
       runat="server" 
       ErrorMessage="InHour is incorrectly formatted." /> 

回答

1

我發現,由於某些原因,當沒有輸入用於匹配(空白字段)RegularExpressionValidators不工作,所以我不得不使用一個單獨的RequiredFieldValidator。感謝您輸入每個人!

1

我注意到的第一件事是,你不要讓你的模式零。那麼10或20是無效的?第二件事是,你開始與AKA「^」,但沒有「開頭」又名「$」

因此,「結尾」 ..試試這個:

^[1-9][0-9]?$ 

在人類可讀:

  • 以1-9開頭,後面跟隨0-9的可選數字,結束字符串。

在另一方面,我不知道你有(「無零」)是什麼意思 - 根本沒有零?

+0

嘿,那裏,謝謝你的回答。我試過你的解決方案,但使用這個正則表達式我仍然可以離開該領域空,它沒有得到驗證 – 2010-08-31 16:35:26

+0

嗯..我沒有關於ASP的線索..但是,PCRE模式是正確的!檢查你的代碼邏輯! – 2010-08-31 16:40:44

+0

我用控件的標記更新了我的問題。我不太明白爲什麼你的解決方案無法正常工作,對我來說非常合適。 – 2010-08-31 16:56:41

0

你可以使用這個表達式:

^([1-9]|[1-9][0-9])$