如何只允许Integers进入文本框

时间:2015-11-19 13:09:05

标签: c# regex

我有一个凭证申请,当有人想要创建一个活动凭证时,他们必须指定的一个字段是" Target Audience"。有时候这个人可能输入一个字符串,或者一个不是int的变量,服务器就会崩溃。我只是想实现一个if语句来查看它是不是一个int,然后做一些事情。我有一个正则表达式,我只是不知道如何实现它。尝试过很多东西。 (要验证的文本框是' campaignAudience')

System.Text.RegularExpressions.Regex.IsMatch(campaignAudience.Value, "[ ^ 0-9]");

4 个答案:

答案 0 :(得分:2)

我最近需要一个类似的解决方案。假设你需要一个整数(没有小数点的数字)。

public static bool IntegerAndIsANumber(this string val)
    {
        if (string.IsNullOrEmpty(val) || val.Contains(',') || val.Contains('.'))
            return false;

        decimal decimalValue;
        if (!Decimal.TryParse(val, out decimalValue))
            return false;

        decimal fraction = decimalValue - (Int64)decimalValue;
        if (fraction == 0)
            return true;

        return false;
    }

它检查给定的字符串是否为 Integer ,如果它首先是一个数字。

使用:

if(YourString.IntegerAndIsANumber()){
  //value is Integer
  }
  else{
  //incorrect value 
  }

P.S。也使用此扩展方法完成了Unit testing

答案 1 :(得分:1)

使用仅接受数字的自定义TextBox,将以下内容添加到项目中,然后编译,当您的表单显示在IDE中时,自定义TextBox将显示在工具箱的顶部。将TextBox添加到表单,现在用户只能输入数字。

DateTime

答案 2 :(得分:0)

Linq版本:

if(campaignAudience.Value.All(x => Char.IsLetter(x)))
{
    // text input is OK
}

正则表达式版本:

if(new Regex("^[A-Za-z]*$").Match(campaignAudience.Value).Success)
{
    // text input is OK
}

答案 3 :(得分:0)

将文本框的按键事件限制为数字