正则表达式来验证双值

问题描述:

我试图拿出一个正则表达式来验证双重价值。我会承认,我是在正则表达式真的应该买书...无论如何,范围很大,所以在这里:正则表达式来验证双值

.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

,而不是一个正则表达式,为什么不使用双重的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 2010-10-04 00:20:49

+0

它甚至适用于非美国文化! +1 – dtb 2010-10-04 00:27:35

+1

+1建议不要使用正则表达式,尽管您的答案不完整 - 您应该编辑它以添加范围检查。 – 2010-10-04 00:36:23

^[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