0

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

我遇到的问题是,即使在这些文本框中输入例如:“blah”,Regex 仍然返回 false,并且没有显示错误消息。

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

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

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

4

6 回答 6

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");
}
于 2012-11-06T12:07:14.633 回答
1
Regex staffNumVal = new Regex(@"^\d*$");
于 2012-11-06T12:08:15.087 回答
0

您的 RegEx 没有按照您的预期执行。

我认为'^'放错了位置。它应该是:@"[^az]+$"。

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

您可以在以下位置进行测试:http ://regexhero.net/tester/

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

于 2012-11-06T12:28:06.647 回答
0

像这样试试

int value;
if (int.TryParse(txtStaffHPhone.Text, out value))
{
    // it's a valid integer 
}
于 2012-11-06T12:07:46.377 回答
0
Regex regex = new Regex(@"^\d$");

请参阅详细信息:Regex 仅用于数字

于 2012-11-06T12:12:29.720 回答
-1

导入 Microsoft.VisualBasic 并使用它!

if (Microsoft.VisualBasic.Information.IsNumeric("5"))
{
//Do Something
}
于 2012-11-06T12:08:00.830 回答