我读过关于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=“数字”,但它允许数学运算符。因此,人们已经进入"6-8“,就像在"6到8小时”。在这页面上,正则表达式^\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“这样的条目确实失败了,因为"Submit”按钮什么也不做,这表明Javascript验证失败了。因此,用户会思考,“表单有什么问题?它不会提交,但是没有错误消息。”
发布于 2017-08-25 22:51:05
ValidationExpression="^\d{1,2}$"
很好,但是对于number
类型的输入没有启用regex检查。
因此,您需要将asp:TextBox
控件type="number"
更改为type="text"
。
发布于 2017-08-25 18:57:31
试试这个Reg Ex
^[0-9]{1,2}$
发布于 2017-08-29 15:45:30
我认为改变类型的答案是正确的。但是,我注意到您的ValidationExpression=“^d{1,2}$”
和ErrorMessage=“请输入一个数字从1-24”不匹配。它将需要任何1-2位数。
只匹配数字1-24的RegEx表达式如下:^(\d)$|^(1\d)$|^(20-4)$
https://stackoverflow.com/questions/45887775
复制相似问题