2013-04-20 58 views
1

大家好我有一個要求,其中一個文本框應該允許從1 to 5 numers帶有小數正則表達式從0驗證號碼5最多2位小數

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})?$裏面也沒有按預期工作,所以可以幫助我一些

+0

修改您正則表達式位:^ [0-5] {1}(\ \ d {1,2})$ – 2013-04-20 14:47:18

+0

沒有按預期工作'mgasparel' – Learner 2013-04-20 14:57:26

+0

查看anouar.bag的答案他修正了我所犯的一個錯誤,允許數值一直高達5.99 – 2013-04-20 15:01:40

回答

2

試試這個

^([0-4]{1}(\.\d{1,2})?|5(.0{1,2})?)$ 
+0

謝謝anouar.bag – Learner 2013-04-20 15:03:11

+0

@歡迎光臨 – 2013-04-20 15:03:44

+0

因此,不會允許'5.00'? – 2013-04-20 17:44:55

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"); 
} 
+0

我需要從客戶端驗證 – Learner 2013-04-20 14:56:37

+0

是'05.000'已經失效了嗎? – 2013-04-20 14:59:00

+0

這是一個簡單的正則表達式。 '^ [1-5](\。\ d {1,2})?$' – 2013-04-20 15:00:18

0

^([0-4](\.\d{1,2})?|5)$可能做的伎倆,如果你只是想只有兩個要考慮數字小數點,否則爲^([0-4](\.\d+)?|5)$