[英].NET regex decimal numbers
我必须在以下简单假设下验证正则表达式十进制数字(介于00.00至35.35之间)(我正在使用C#)。
1)不需要前导零(可选)。 2)始终需要2个小数。
换句话说,它应该是一个十进制数字,范围为2个小数点。
有效数字的示例是:0.00、00.00,.67、2.89,并且这些数字应失败:8.9999(小数点后4位),65.00(超出范围)
我没有困难来验证2个小数点,但不知道该如何做? 使用正则表达式是否可以做到这一点?
认真。 使用RegEx检查输入是否与^\\d{1,2}\\.\\d{2}$
匹配,然后将其转换为数字并检查0 <= x && x <= 35.35
。 RegEx并非旨在作为计算器。
如果你坚持:
^(?:(?:[012]?\d|3[0-4])\.\d{2}|35\.(?:[012]\d|3[0-5]))$
我会使用Decimal.TryParse 。 例如:
private const decimal min = 0.0M;
private const decimal max = 35.35M;
static bool inRange(string s)
{
Decimal d = new Decimal();
if (Decimal.TryParse(s, out d))
{
return d > min && d < max;
}
else
return false;
}
试试这个正则表达式:
^(0?\d|[12]\d|3[0-4])?\.\d\d$|^35\.([02]\d|3[05])$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.