-1

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

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

5 回答 5

2

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

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

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

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

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

于 2012-06-15T05:01:16.283 回答
2

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

<asp:TextBox runat="server" ID="txtprice" width="50" />
        <asp:RegularExpressionValidator runat="server" ErrorMessage="Decimal Only" ControlToValidate="txtprice"
      ValidationExpression="^[1-9]\d*(\.\d+)?$"></asp:RegularExpressionValidator>
于 2016-07-18T14:23:18.460 回答
1
expr = `@"^\d{1,2}\.\d$"`;  

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

于 2012-06-15T04:49:53.543 回答
0

如果你想要小数点前两位数和小数点后一位数,试试这个

-?[1-9][0-9][\.][0-9]
于 2012-06-15T04:54:55.697 回答
0

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

string sExpression = @"^[0-9][0-9]\.[0-9]$";
于 2012-06-15T06:08:00.897 回答