2010-10-04 80 views
1

我試圖拿出一個正則表達式來驗證雙重價值。我會承認,我是在正則表達式真的應該買書...無論如何,範圍很大,所以在這裏:正則表達式來驗證雙值

.01到99.99,是範圍,與領先'00'是可選的,作爲是個 '。'對於尾隨'.00'也是如此。因此用戶可以輸入0.1 00.01,0.11,1,1.0 1.00,這些全部都是有效的。

謝謝,河

+0

你在C#這樣做(.NET)的正則表達式?如果是這樣,你應該擺脫'visual-studio'標籤; VS有它自己的正則表達式,這與.NET的有很大不同。 (如果有人建議使用':n',他們說VS.) – 2010-10-04 00:43:47

+0

謝謝艾倫我會牢記這一點。 – flavour404 2010-10-08 00:57:42

回答

7

,而不是一個正則表達式,爲什麼不使用雙重的TryParse方法?

string[] sa = new string[] { "00.01", "1.00", "xx" }; 
double d; 
bool isValid; 
foreach (string s in sa) 
{ 
    isValid = double.TryParse(s, out d) && d >= 0.01d && d <= 99.99d; 
    Console.WriteLine("{0}: {1}", s, isValid.ToString()); 
} 
+0

'&& d> = 0.01m && d <= 99.99m' – 2010-10-04 00:20:49

+0

它甚至適用於非美國文化! +1 – dtb 2010-10-04 00:27:35

+1

+1建議不要使用正則表達式,儘管您的答案不完整 - 您應該編輯它以添加範圍檢查。 – 2010-10-04 00:36:23

-1
^[0-9]{0,2}\.?[0-9]{0,2}$ 

你可以在這裏嘗試一下:http://www.regular-expressions.info/javascriptexample.html

+0

不適用於所有示例。 – 2010-10-04 00:35:35

+1

這實際上也接受3個或4位數整數(100-999和1000-9999)以及空字符串和字符串'.' – eldarerathis 2010-10-04 00:38:33

+0

@馬克Byers的,但它確實對所有實施例的工作引述:0.1 00.01, 0.11,1,1.0 1.00。並且,感謝指出@eldarerathis - 它匹配3/4位整數和空字符串: - / – kartheek 2010-10-04 00:52:12