【问题标题】:ASP.net TextBox Regular Expression Needed to include 2 Decimal PlacesASP.net TextBox 正则表达式需要包含 2 个小数位
【发布时间】:2009-12-22 05:40:26
【问题描述】:

大家晚上好,

我有一个需要接受 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 位数字和两位小数?

谢谢, 席德

【问题讨论】:

  • 一个非常好的开发正则表达式的工具是 Expresso,在这里可以找到:ultrapico.com/Expresso.htm。它将准确地用简单的英语向您展示您的表达方式,并为 RegEx 提供强大的“IDE”。

标签: asp.net


【解决方案1】:

11 位数字后跟(可选)句点和另外两位数字。这是适合您的领域的最大值:^\d{1,11}(?:\.\d\d)?$

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多