0

我想使用正则表达式来验证输入是否

空 -> 到 100

示例:0 或 1 或 10,1 或 20.2 或 99

只有正值,0 或空值到 100,并接受点和逗号。任何人都可以给我正确的 C# 正则表达式吗?

非常感谢 :)

4

4 回答 4

0

试试这个(如果有逗号或句号,至少需要一个以下数字):

^\d*(?:(?:\.|\,)\d+)?$

这些请求的一个很好的工具:http ://regexpal.com/

问候

于 2012-07-12T15:13:17.740 回答
0

可以在此处找到大量数字正则表达式的示例

正则表达式库

于 2012-07-12T15:14:44.620 回答
0

正则表达式是关于匹配字符。它不了解数字。

尝试使用 解析它double.TryParse(),如果由于字符串使用,as 而不是 而失败.,请替换,.然后重试。

于 2012-07-12T15:15:01.717 回答
0

尝试这个:

(100|\d{1,2}[.,]\d+)

Double.Parse()在这里使用更正确。

string str = '10,1';
bool valid = false;
double num = -1;

str = str.Replace(",", ".");

if (String.IsNullOrEmpty(str)) {
    valid = true;
} else {
    try {
        num = Double.Parse(str);
    } catch (Exception ex) {
        valid = false;
    }

    if (num >= 0 && num <= 100) {
        valid = true;
    }
}

*我为什么不Double.TryParse()改用?

可悲的是,解析失败会使结果0为有效条件。

于 2012-07-12T15:19:02.047 回答