我需要验证用户对文本框的输入是否精确到十进制数?例如下面是一些案例..
如果用户输入 1 则无效
如果用户输入 0 则无效
如果用户输入 1.0 那么它是有效的
如果用户输入 1.1 那么它是有效的
如果用户输入 1.11 则无效
如果用户输入 100.1 那么它是有效的
如何使用 C#(.net 3.5) 实现这一目标?
它是一个 WPF 文本框。
谢谢,-迈克
我需要验证用户对文本框的输入是否精确到十进制数?例如下面是一些案例..
如果用户输入 1 则无效
如果用户输入 0 则无效
如果用户输入 1.0 那么它是有效的
如果用户输入 1.1 那么它是有效的
如果用户输入 1.11 则无效
如果用户输入 100.1 那么它是有效的
如何使用 C#(.net 3.5) 实现这一目标?
它是一个 WPF 文本框。
谢谢,-迈克
对我来说,最简单的方法似乎是使用正则表达式。通过将用户输入解释为字符串,您可以将其与类似的内容进行比较'[0-9]+\.[0-9]'
对于实现此目的的非正则表达式方式:
string input;
decimal deci;
if (input.Length >=3 && input[input.Length - 2].Equals('.') && Decimal.TryParse(input , out deci))
{
// Success
}
else
{
// Fail
}
是的,正则表达式是检查您的状况的最佳方法:
对于确切的 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?)?$/
如果您想在开头允许 +/-,则将 ^ 替换为 ^[-+]?。