我有一个凭证申请,当有人想要创建一个活动凭证时,他们必须指定的一个字段是" Target Audience"。有时候这个人可能输入一个字符串,或者一个不是int的变量,服务器就会崩溃。我只是想实现一个if语句来查看它是不是一个int,然后做一些事情。我有一个正则表达式,我只是不知道如何实现它。尝试过很多东西。 (要验证的文本框是' campaignAudience')
System.Text.RegularExpressions.Regex.IsMatch(campaignAudience.Value, "[ ^ 0-9]");
答案 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)
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)
将文本框的按键事件限制为数字