2010-08-31 131 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])$