正则表达式验证器和Rad数字文本框阻止我保存

时间:2016-11-02 01:23:45

标签: .net regex validation

我有以下正则表达式验证器 -

<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

我相信我的正则表达式能够成功实现这个目标,但每当我通过我的保存按钮保存值时,由于正则表达式,它就会停止运行。如果我将该字段留空,则保存按钮仍然正常,因此我知道它是由正则表达式引起的。

1 个答案:

答案 0 :(得分:0)

我尝试了harristyle的正则表达式,我在对它进行了一些小调整之后最终决定使用它。由于rad数字文本框自动添加小数位和两个零,如果我输入一个数字,如1234,这将导致文本框显示1234.00。我必须使小数位和字符串的其余部分可选。保存数据时,无论哪种方式都包含十进制值。

这是我用过的表达式 -

^\d{1,10}\.?\d{2}$