验证电话号码?

问题描述 投票:0回答:7

验证电话号码的条件是什么?

首先它必须是一个数值,可以包括以下数字

0123456789
和加号
+

但是下面的情况呢,你从哪里得到这些数据呢?

-格式必须为[国家/地区代码+区号+电话号码]

-它必须是最小和最大长度

编辑:移动电话号码的最小和最大长度是多少?

c# asp.net asp.net-core validation phone-number
7个回答
8
投票

如果电话可以位于世界任何地方,则可能不值得尝试验证电话号码。

  1. 扩展怎么样?
  2. 1-800-花
  3. 根据呼叫来源地(国内/国外),号码会有所不同

我见过确实需要验证的地方(例如 craigslist),请拨打该号码并让您验证他们通过电话提供的信息。


0
投票

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


0
投票

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

/// 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
}

您可以为不同国家/地区的组合框添加不同的值,它将起作用


0
投票

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

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


0
投票

这是我用 JavaScript 为电话号码所做的一个,应该不会有太大不同。但是 Visual Studio 不能自动为您完成此操作吗?

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

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;
    }
}

0
投票

我会使用 libphonenumbner-csharp 库。

如果我们使用一个简单的电话号码:

var util = PhoneNumberUtil.GetInstance();

var number = util.Parse("+1-800-800-6000", "US");

Console.WriteLine(util.IsValidNumber(number));
Console.WriteLine(number.CountryCode.ToString());
Console.WriteLine(util.GetRegionCodeForCountryCode(number.CountryCode));
Console.WriteLine(number.NationalNumber.ToString());
Console.WriteLine(util.Format(number, PhoneNumberFormat.E164));

例如,如果电话号码不正确,例如

var number = util.Parse("+1-800-800-60001", "US");

var number = util.Parse("+1-800-800-600", "US");

util.IsValidNumber(number)
false

来源

免责声明:我在我的个人博客中写了一篇关于此的小文章。

© www.soinside.com 2019 - 2024. All rights reserved.