我正在尝试验证文本框以检查其是否输入了电话号码类型值。
我遇到的问题是,即使条目例如:“blah”在这些文本框中,正则表达式仍然返回false并且没有显示错误消息。
Regex staffNumVal = new Regex(@"^[a-z]+$");
if (staffNumVal.IsMatch(txtStaffHPhone.Text)||(staffNumVal.IsMatch(txtStaffHourRate.Text)))
{
MessageBox.Show("Please enter a numeric value");
}
有没有更好的方法来做到这一点,我错过了?谢谢。
答案 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
}