1

我认为标题是描述性的

有效的:0.1, 0.15, 0.25, .... and 1

如何包含1是这里的主要挑战。谢谢。

更新

对不起,我不能写代码。这是一个遗留应用程序,我无权访问源代码。应用程序验证方法已嵌入,并且正在使用应用程序中嵌入的正则表达式验证器

4

3 回答 3

7

正则表达式允许您在模式之间进行选择(即:匹配模式 A 或模式 B)。您可以使用 | 字符(例如:A|B)。

试试这个:

^(0(\.[0-9]+)?|1(\.0+)?)$
于 2012-09-04T17:20:43.107 回答
4

这不是正则表达式解决方案,因为我认为正则表达式不是一个好的解决方案。我会这样做:

string n = "0.1";
decimal number;
bool isNumber = Decimal.TryParse(n, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out number);
return isNumber && number >= 0 && number <= 1;
于 2012-09-04T17:21:40.023 回答
3

也许这会有所帮助:

^(?:(?:0)(?:\.\d+)?)|(?:1)(?:\.0+)?$
于 2012-09-04T17:21:19.680 回答