验证电话号码文本框

时间:2014-09-10 01:42:22

标签: c# winforms

我想知道如何使用以下代码验证文本框中的电话号码:

System.Text.RegularExpressions.Regex rphone = new System.Text.RegularExpressions.Regex(@"^((\+){0,1}91(\s){0,1}(\-){0,1}(\s){0,1}){0,1}9[0-9](\s){0,1}(\-){0,1}(\s){0,1}[1-9]{1}[0-9]{7}$");

2 个答案:

答案 0 :(得分:3)

尝试:

\+[0-9]{3}\s+[0-9]{3}\s+[0-9]{5}\s+[0-9]{3}
继续对上面的模式进行了一些解释。

\+ -------------|> +sign
[0-9]{3} -------|> matches 0-9 max of 3digit
\s+ ------------|> a whitespace

与您的样本匹配: +020 111 94546 333

如果您想验证号码是否已完成,请说明您有一个按钮,然后文本框会执行以下操作:

private void button1_Click(object sender, EventArgs e)
{
    Regex phoneNumpattern = new Regex(@"\+[0-9]{3}\s+[0-9]{3}\s+[0-9]{5}\s+[0-9]{3}");
    if (phoneNumpattern.IsMatch(textBox1.Text))
    {
        MessageBox.Show("OK");
    }
    else
    {
        MessageBox.Show("Invalid phone number");
    }
}

答案 1 :(得分:2)

private void myTextBox_Leave(object sender, EventArgs e)
{
    Regex pattern = new Regex(@"^((\+){0,1}91(\s){0,1}(\-){0,1}(\s){0,1}){0,1}9[0-9](\s){0,1}(\-){0,1}(\s){0,1}[1-9]{1}[0-9]{7}$");
    if (pattern.IsMatch(myTextBox.Text))
    {
        MessageBox.Show("OK");
    }
    else
    {
        MessageBox.Show("Invalid phone number");
    }
}