0

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

+46703897733;+46733457773;+46703443832;+42708513544;+91703213815;+919054400407。

有人帮帮我吗?

提前致谢。

4

4 回答 4

1

使用下面的代码 +46... 数字。其他数字是相似的

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

    foreach(string s in numbers)
    {
        if (r.Match(s).Success)
        {
            Console.WriteLine("Match");
        }
    }
于 2013-07-16T07:09:19.850 回答
0
  1. 选择适当和合适的正则表达式,例如从这里
  2. 遍历您的号码集合并一一验证它们,例如:

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

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

于 2013-07-16T06:58:39.823 回答
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.
于 2013-07-16T07:04:08.130 回答
0

您的正则表达式模式应该是:

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

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

[+][1-9][0-9]{11,11}
于 2013-07-16T07:29:29.523 回答