TextBox如何在WPF中接受正十进制值和负十进制值

时间:2013-02-28 07:11:52

标签: wpf textbox

在我的projcet(WPF)文本框中只允许正十进制数和负数十进制数。我使用正则表达式然后它接受-.values.but它接受这样的值

-123.-2这是不正确的。我的要求就是这样接受

233334 -233333 -2.3444

我使用了这段代码。

    private void NumericOnly(System.Object sender, System.Windows.Input.TextCompositionEventArgs e)
    {
        e.Handled = IsTextNumeric(e.Text);

    }


    private static bool IsTextNumeric(string str)
    {
        System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex("[^0-9.-]");
        return reg.IsMatch(str);

    }

有人请帮帮我。如果该文本框接受正负十进制数值。

2 个答案:

答案 0 :(得分:0)

您只想将负号作为第一个可选字符。所以:

"-?[\.0-9]+"

如果您真的想要使用RegEx。 但也许像Double.TryParse()这样的某些东西会更好吗?

答案 1 :(得分:0)

我认为最好的选择是绑定到double,因为这会突出显示输入错误的文本框,这样可以让用户反馈他们输入的内容。

或者您可以使用double.TryParse检查数字是否有效

private static bool IsTextNumeric(string str)
{
    double value;
    return double.TryParse(str, out value);
}