ASP.net TextBox正则表达式需要包含2个小数位数

时间:2009-12-22 05:40:26

标签: asp.net

晚安,

我有一个需要接受14位数加2位小数的文本框。例子包括:
12345678901234
12345678901234.94
.75

为此,我有以下代码:

<asp:TextBox ID="txtQuantity" runat="server" CssClass="txtBox textboxRight"
    MaxLength="14" Width="70px"></asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server"
    ControlToValidate="txtQuantity" Display="Dynamic" ErrorMessage="Required "
    SetFocusOnError="True" ValidationGroup="vgItem"></asp:RequiredFieldValidator>
&nbsp;

<asp:RegularExpressionValidator ID="RangeValidator1" runat="server"
    ControlToValidate="txtQuantity" Display="Dynamic" 
    ErrorMessage="Invalid Quantity"
    ValidationExpression="^\d+(?:\.\d{0,2})?$" 
    SetFocusOnError="True"></asp:RegularExpressionValidator>

此文本框的MaxLength也设置为14。任何人都可以指导我如何写正则表达式接受总共14位和两位小数?

谢谢, SID

1 个答案:

答案 0 :(得分:4)

十一位数后跟(可选)句号和两位数。这是您的字段中可以容纳的最大值:^\d{1,11}(?:\.\d\d)?$

如果您希望用户能够输入没有任何小数的14位数字或最多11位数字和两位小数(并且不允许只有一个十进制数字),您可以这样做:^(?:\d{1,14}|\d{1,11}\.\d\d)$