如何使用正则表达式验证多个电话号码

时间:2013-07-16 06:52:55

标签: c# javascript asp.net regex

我有一个场景,我必须一次验证多个电话号码。例如,我将在网格中输入这样的电话号码。

46703897733; 46733457773; 46703443832; 42708513544; 91703213815; 919054400407

有人帮我吗?

提前致谢。

4 个答案:

答案 0 :(得分:1)

使用以下代码获取+46 ...数字。 其他数字是simlar

 string regexPattern = @"^+46[0-9]{9}$";
    Regex r = new Regex(regexPattern);

    foreach(string s in numbers)
    {
        if (r.Match(s).Success)
        {
            Console.WriteLine("Match");
        }
    }

答案 1 :(得分:0)

  1. 选择合适且合适的正则表达式,例如来自here
  2. 遍历您的号码集并逐一验证它们,如:

    Regex rgx = new Regex(yourPattern, RegexOptions.IgnoreCase);
    foreach(string num in numbers)
    {
    if(rgx.Matches(num ))
    //do something you need
    }
    

    您还可以将RegularExpressionValidator添加到网格中的电话号码列单元格,并将其传递给您的模式。然后按钮单击或任何导致验证的事件将为您完成。

答案 2 :(得分:0)

如果 + 在您的号码中是强制性的,请在c#

中执行此操作
        string[] numbers = new string[] { "+46703897733","+46733457773","46733457773"};
         string regexPattern = @"^\+(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$";
        Regex r = new Regex(regexPattern);

        foreach(string s in numbers)
        {
            if (r.Match(s).Success)
            {
               //"+46703897733","+46733457773" are valid in this case
                Console.WriteLine("Match");
            }
        }

如果 + 不是强制性的,则可以执行此操作

         string regexPattern = @"^\+?(\d[\d-. ]+)?(\([\d-. ]+\))?[\d-. ]+\d$";
         // all the numbers in the sample above will be considered as valid.

答案 3 :(得分:0)

您的正则表达式应该是:

[+][1-9][0-9]* 

这是你所要求的;如果你想限制它,比如:+911234567890,那么你的exp应该是:

[+][1-9][0-9]{11,11}