验证电话号码?

时间:2010-12-03 14:21:02

标签: c# asp.net validation phone-number

验证电话号码有什么条件?

首先它必须是一个数值,可以包括以下数字 0123456789和加号。 +

但是下列条件呢,你从哪里获得这些数据?

- 必须采用[国家拨号代码+区号+电话号码]

的格式

- 必须是最小和最大长度

编辑:手机/手机号码的最小和最大长度是多少?

6 个答案:

答案 0 :(得分:8)

如果手机可以在世界任何地方,那么可能不值得尝试验证电话号码。

  1. 扩展怎么样?
  2. 1-800-花
  3. 根据呼叫的来源(国内/国外),数字会有所不同
  4. 我见过的实际需要验证的地方(如craigslist)拨打这个号码,让你验证他们通过电话给你的信息。

答案 1 :(得分:0)

这是我用JavaScript编写的电话号码,不应该太不同。但Visual Studio不能自动为您做到这一点吗?

 var ph = refp.search(/^[1-9][0-9]{2}-[0-9]{3}-[0-9]{4}$/);

答案 2 :(得分:0)

您还必须验证字符() - 并且必须考虑国际号码的可能性。

答案 3 :(得分:0)

它必须有一个固定的长度,也许你可以在一个组合框中包含区号和其余的数字在文本框中。在更改组合框时,您可以设置文本框的maxLength并更改正则表达式的areacode部分。这是一个示例:

/// 3 digits of area code like (333)
string areaCodeRegExp = @"(?<areaCodeGroup>\(\d\d\d\))";
/// xxx-xxxx phone num ex: 333-3333 
string phoneRegExp = @"(?<phoneGroup>\d\d\d\-\d\d\d\d)";


if (System.Text.RegularExpressions.Regex.IsMatch(text, areaCodeRegExp + " " + phoneRegExp))
{
     // this will be valid if phone is (312) 333-4453
}

您可以为不同国家/地区的组合框添加不同的值,它可以正常工作

答案 4 :(得分:0)

你可以看看http://regexlib.com/Search.aspx?k=phone+number&c=-1&m=-1&ps=20

我在搜索框中输入了电话号码作为关键词......

答案 5 :(得分:0)

private void txtContactNo_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar)
        && !char.IsDigit(e.KeyChar)
        && e.KeyChar != '.')
    {
        e.Handled = true;
    }

    if (e.KeyChar == '.'
     && (sender as TextBox).Text.IndexOf('.') > -1)
    {
        e.Handled = true;
    }
}