asp.net正则表达式验证器的十进制

时间:2012-06-15 04:43:49

标签: c# asp.net

使用以下表达式验证带有十进制数的文本框。但它接受12,-1.0,12.0,12.5,1.0等。但我想要一个像这样的“12.4”的正则表达式。前两位数和小数点后跟一位数字。

ValidationExpression="^-?[0-9]{0,2}(\.[0-5]{1,1})?$|^-?(100)(\.[0]{1,2})?$" 

5 个答案:

答案 0 :(得分:2)

首先,正则表达式严重过于复杂。整个事情可以改写为

^-?([0-9]{0,2}(\.[0-5])?|100(\.00?)?)$

......并且具有完全相同的效果。但根据你的评论,你正在寻找更严格的东西:

^[0-9]{2}\.5$

我不清楚为什么要这样做,但这正是你所描述的。如果您不想强制最后一位数为5(您的评论不清楚),请使用^[0-9]{2}\.[0-9]$

答案 1 :(得分:1)

expr = `@"^\d{1,2}\.\d$"`;  

字符串的开头 - 两位数 - 小数点 - 单位数。没有减号,没有整数。这就是你想要的吗?

答案 2 :(得分:1)

您可以在 ASPX 页面上使用此代码。在ValidationExpression属性中使用^[1-9]\d*(\.\d+)?$

<asp:TextBox runat="server" ID="txtprice" width="50" />
        <asp:RegularExpressionValidator runat="server" ErrorMessage="Decimal Only" ControlToValidate="txtprice"
      ValidationExpression="^[1-9]\d*(\.\d+)?$"></asp:RegularExpressionValidator>

答案 3 :(得分:0)

如果你想要十进制前两位数和十进制后一位数,试试这个

-?[1-9][0-9][\.][0-9]

答案 4 :(得分:0)

我在WPF中测试了下面的表达式,一旦检查这个就可以正常工作

string sExpression = @"^[0-9][0-9]\.[0-9]$";