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



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

<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

我相信我的正则表达式成功地完成了这个目标,但是每当我通过保存按钮保存值时,由于正则表达式,它就会停止运行。如果我留下空白字段,保存按钮仍然可以正常工作,所以我知道它是由正则表达式引起的。

我尝试了harristyle的regex,在对它做了一个小小的调整后,我最终使用了它。由于数字文本框自动添加一个小数点和两个零,如果我输入一个数字,如1234,这将导致文本框显示1234.00。我必须让小数点和字符串的其余部分是可选的。当我保存数据时,十进制值仍然以任何方式包含。

这是我使用的表达式-

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

最新更新