验证数字文本框

时间:2012-11-06 12:05:26

标签: c# validation

我正在尝试验证文本框以检查其是否输入了电话号码类型值。

我遇到的问题是,即使条目例如:“blah”在这些文本框中,正则表达式仍然返回false并且没有显示错误消息。

Regex staffNumVal = new Regex(@"^[a-z]+$");

if (staffNumVal.IsMatch(txtStaffHPhone.Text)||(staffNumVal.IsMatch(txtStaffHourRate.Text)))
{
   MessageBox.Show("Please enter a numeric value");
}

有没有更好的方法来做到这一点,我错过了?谢谢。

6 个答案:

答案 0 :(得分:2)

而不是

Regex staffNumVal = new Regex(@"^[a-z]+$");

使用

Regex staffNumVal = new Regex(@"^[0-9]+$");

if (staffNumVal.IsMatch(txtStaffHPhone.Text)||(staffNumVal.IsMatch(txtStaffHourRate.Text)))
{
  //Valid
}
else
{
  MessageBox.Show("Please enter a numeric value");
}

答案 1 :(得分:1)

Regex staffNumVal = new Regex(@"^\d*$");

答案 2 :(得分:0)

试试吧

int value;
if (int.TryParse(txtStaffHPhone.Text, out value))
{
    // it's a valid integer 
}

答案 3 :(得分:0)

Regex regex = new Regex(@"^\d$");

参阅详细信息:Regex for numbers only

答案 4 :(得分:0)

您的RegEx没有达到您的预期。

我认为'^'是错位的。它应该是:@“[^ a-z] + $”。

但即使这是错误的,因为它接受像&这样的东西。

您可以在http://regexhero.net/tester/

进行测试

但我认为使用MaskedTestBox会更好。你试过了吗?

答案 5 :(得分:-1)

导入Microsoft.VisualBasic并使用它!

if (Microsoft.VisualBasic.Information.IsNumeric("5"))
{
//Do Something
}