我已经阅读了有关RegularExpressionValidator的其他问题的其他答案,但他们没有帮助。我正在开发一个ASP.NET C#应用程序,我有一个文本字段,需要是1位或2位数字。这是控件:
<asp:TextBox
ID="Hunt_Daily_Sitting_hrs"
runat="server"
class="form-control"
placeholder="hours"
type="number"></asp:TextBox>
正如所写,即使它指定type =“number”,它也允许数学运算符。因此人们在“6到8小时”内进入“6-8”。在this页面上,正则表达式^ \ d {1,2} $标记这样的条目。但是,在我的应用程序中,行
<asp:RegularExpressionValidator
ID="HuntSitRegexp"
Display="Dynamic"
ControlToValidate="Hunt_Daily_Sitting_hrs"
ValidationExpression="^\d{1,2}$"
runat="server"
ErrorMessage="Please enter a number from 1-24"
Font-Size="Large"
ForeColor="Red" />
没有。立即标记3位数字,但不会立即标记“6-8”等条目。但是,诸如“6-8”之类的条目无法提交,因为“提交”按钮不执行任何操作,表示Javascript验证失败。因此,用户会想到“表单有什么问题?它不会提交,但没有错误信息。”
答案 0 :(得分:1)
ValidationExpression="^\d{1,2}$"
没问题,但是对number
类型的输入没有启用正则表达式检查。
因此,您需要将asp:TextBox
控件type="number"
更改为type="text"
。
答案 1 :(得分:0)
尝试使用此Reg Ex
^[0-9]{1,2}$
答案 2 :(得分:0)
我认为改变类型的答案是正确的。
但是,我注意到了你的
ValidationExpression = “^ \ d {1,2} $”
和
ErrorMessage =“请输入1-24之间的数字”
不符合。这将需要任何1-2位数字。
仅匹配数字1-24的RegEx表达式如下:^(\ d)$ | ^(1 \ d)$ | ^(2 [0-4])$