我正在尝试整合一个全面的正则表达式来验证电话号码.理想情况下它会处理国际格式,但它必须处理美国格式,包括以下内容:
我将回答我目前的尝试,但我希望有人能有更好的和/或更优雅的东西.
我正在使用此模式来检查电话号码的验证
^[0-9\-\+]{9,15}$
Run Code Online (Sandbox Code Playgroud)
这对工作0771234567和+0771234567,但我希望它的作品077-1234567,并+077-1234567和+ 077-1-23-45-67和+ 077-123-45-6-7
我该怎么改变模式?
首先,我会说我在这里看到很多例子和谷歌搜索,但没有发现匹配所有条件我正在寻找一些匹配前三名不低于一些中间.请告诉我如何将所有这些放在一个地方.
(xxx)xxxxxxx
(xxx) xxxxxxx
(xxx)xxx-xxxx
(xxx) xxx-xxxx
xxxxxxxxxx
xxx-xxx-xxxxx
Run Code Online (Sandbox Code Playgroud)
用作:
const string MatchPhonePattern =
@"\(?\d{3}\)?-? *\d{3}-? *-?\d{4}";
Regex rx = new Regex(MatchPhonePattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);
// Find matches.
MatchCollection matches = rx.Matches(text);
// Report the number of matches found.
int noOfMatches = matches.Count;
// Report on each match.
foreach (Match match in matches)
{
tempPhoneNumbers= match.Value.ToString(); ;
}
Run Code Online (Sandbox Code Playgroud)
样本输出:
3087774825
(281)388-0388
(281)388-0300
(979) 778-0978
(281)934-2479
(281)934-2447
(979)826-3273
(979)826-3255
1334714149
(281)356-2530
(281)356-5264
(936)825-2081
(832)595-9500
(832)595-9501
281-342-2452
1334431660
Run Code Online (Sandbox Code Playgroud)