我正在使用下面的表达式来验证带有十进制数字的文本框。但它接受 12、-1.0、12.0、12.5、1.0 等。但我想要一个像“12.4”这样的正则表达式。前两位数和小数点,后跟一位数。
ValidationExpression="^-?[0-9]{0,2}(\.[0-5]{1,1})?$|^-?(100)(\.[0]{1,2})?$"
首先,该正则表达式过于复杂。整个事情可以重写为
^-?([0-9]{0,2}(\.[0-5])?|100(\.00?)?)$
...并具有完全相同的效果。但根据您的评论,您正在寻找更严格的东西:
^[0-9]{2}\.5$
我不清楚你为什么要这样做,但这正是你所描述的。如果您不想强制最后一位数字为 5(您的评论不清楚),请使用^[0-9]{2}\.[0-9]$
.
您可以在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>
expr = `@"^\d{1,2}\.\d$"`;
字符串开头 - 两位数 - 小数点 - 一位数。没有减号,没有整数。那是你要的吗?
如果你想要小数点前两位数和小数点后一位数,试试这个
-?[1-9][0-9][\.][0-9]
我在 WPF 中测试了以下表达式,一旦检查它就可以正常工作
string sExpression = @"^[0-9][0-9]\.[0-9]$";