【发布时间】:2017-03-15 05:50:23
【问题描述】:
我有以下正则表达式验证器-
<asp:RegularExpressionValidator ID="targetNumValidator" runat="server" Display="Dynamic" ValidationExpression="/^\d{0,7}(\.\d{0,2})?$/" ControlToValidate="txtTargetNum"></asp:RegularExpressionValidator>
使用以下 Rad 数字文本框-
<telerik:RadNumericTextBox ID="txtTargetNum" MaxLength="12" NumberFormat-DecimalDigits="2" runat="server">
</telerik:RadNumericTextBox>
我试图限制用户最多输入 12 位数字,始终包括两位小数。
好例子-
123.00
123.12
1234567891.00
12345.34
不好的例子-
123.222
12345678912.00
我相信我的正则表达式可以成功实现这个目标,但是每当我通过保存按钮保存值时,它都会因为正则表达式而停止。如果我将该字段留空,保存按钮仍然可以正常工作,所以我知道它是由正则表达式引起的。
【问题讨论】:
-
为什么
1234567891.00是个坏例子? -
糟糕,忘记了一个数字。我更新了示例。谢谢
-
这个怎么样?
^\d{1,10}\.\d{2}$,{,}表示字符乘数,因此在您的情况下,在开始时您需要任何数字出现 1 到 10 次,这可以通过\d{1,10}实现,然后是转义点\.,然后是其他任何数字数字,但这次正好是其中的两个,因此是\d{2}。 -
@harristyle 您应该将此作为答案发布,因为它解决了 OPs 问题;)
-
我认为这里不需要正则表达式分隔符,
/应该被删除。
标签: .net regex validation