1

大家好,我有一个要求,文本框应该允许数字1 to 5和小数

Valid conditons : 1,2,3,4,5
Valid conditions : 0.1,0.02,0.5 ---- 4.99

InValid : -1,-2,-3,-4,-5 or 6 5.1 and so one

我尝试了这个^\d{1}[0-5](?:\.\d{1,2})?$没有按预期工作的表达,所以有人可以帮助我

4

3 回答 3

2

尝试这个

^([0-4]{1}(\.\d{1,2})?|5(.0{1,2})?)$
于 2013-04-20T14:58:32.703 回答
1

我认为正则表达式在这里有点矫枉过正,这不是很简单&&吗?

decimal _dec = 0.0m;
if ((_dec >= 0) && (_dec <= 5))
{
    Console.WriteLine("Valid");
}
else
{
    Console.WriteLine("Invalid");
}

但如果该值是一个字符串,Decimal.TryParse()则用于检查它是否为有效的十进制数,

string _strDecimal = "3.5";
decimal _dec;
bool _valid = Decimal.TryParse(_strDecimal, out _dec);
if (_valid)
(
    if ((_dec >= 0) && (_dec <= 5))
    {
        Console.WriteLine("Valid");
    }
    else
    {
        Console.WriteLine("Invalid");
    }
)
esle
{
        Console.WriteLine("Invalid");
}
于 2013-04-20T14:43:41.413 回答
0

^([0-4](\.\d{1,2})?|5)$如果您只想考虑只有两位小数的数字,则可能会奏效,^([0-4](\.\d+)?|5)$否则。

于 2013-04-20T14:58:21.560 回答