0

我需要验证用户对文本框的输入是否精确到十进制数?例如下面是一些案例..

  • 如果用户输入 1 则无效

  • 如果用户输入 0 则无效

  • 如果用户输入 1.0 那么它是有效的

  • 如果用户输入 1.1 那么它是有效的

  • 如果用户输入 1.11 则无效

  • 如果用户输入 100.1 那么它是有效的

如何使用 C#(.net 3.5) 实现这一目标?

它是一个 WPF 文本框。

谢谢,-迈克

4

3 回答 3

2

对我来说,最简单的方法似乎是使用正则表达式。通过将用户输入解释为字符串,您可以将其与类似的内容进行比较'[0-9]+\.[0-9]'

于 2013-04-10T09:36:02.383 回答
2

对于实现此目的的非正则表达式方式:

string input;
decimal deci;
if (input.Length >=3 && input[input.Length - 2].Equals('.') && Decimal.TryParse(input , out deci))
{
    // Success
}
else
{
    // Fail
}
于 2013-04-10T09:42:52.547 回答
0

是的,正则表达式是检查您的状况的最佳方法:

对于确切的 NNNN.N (1234.5) 使用:

/^\d{4}\.\d$/

对于可选的 .N (1234 1234. 1234.5),请使用:

/^\d{4}(\.\d?)?$/

对于大小不超过 NNNN.N (1 .5 12.5 123. 1234 1234.5) 的数字,请使用:

/^(?=.*\d)\d{0,4}(\.\d?)?$/

如果您想在开头允许 +/-,则将 ^ 替换为 ^[-+]?。

于 2013-04-10T09:41:10.347 回答