使用以下表达式验证带有十进制数的文本框。但它接受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 :(得分: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]$";