using System.Text.RegularExpressions;
public static void Main()
Console.WriteLine("Valid Numbers");
Console.WriteLine(IsValidPhone("847.555.1212"));
Console.WriteLine(IsValidPhone("(847)555-1212"));
Console.WriteLine(IsValidPhone("8475551212"));
Console.WriteLine(IsValidPhone("847 555 1212"));
Console.WriteLine(IsValidPhone("847-555-1212"));
Console.WriteLine(IsValidPhone("1847-555-1212"));
Console.WriteLine(IsValidPhone("+1847-555-1212"));
Console.WriteLine(IsValidPhone("1847-555-1212 x123"));
Console.WriteLine(IsValidPhone("847-555-1212 x123"));
Console.WriteLine(IsValidPhone("3087774825"));
Console.WriteLine(IsValidPhone("(281)388-0388"));
Console.WriteLine(IsValidPhone("(281)388-0300"));
Console.WriteLine(IsValidPhone("(979) 778-0978"));
Console.WriteLine(IsValidPhone("(281)934-2479"));
Console.WriteLine(IsValidPhone("(281)934-2447"));
Console.WriteLine(IsValidPhone("(979)826-3273"));
Console.WriteLine(IsValidPhone("(979)826-3255"));
Console.WriteLine(IsValidPhone("(281)356-2530"));
Console.WriteLine(IsValidPhone("(281)356-5264"));
Console.WriteLine(IsValidPhone("(936)825-2081"));
Console.WriteLine(IsValidPhone("(832)595-9500"));
Console.WriteLine(IsValidPhone("(832)595-9501"));
Console.WriteLine(IsValidPhone("281-342-2452"));
Console.WriteLine("Invalid Numbers");
Console.WriteLine(IsValidPhone("555-1212"));
Console.WriteLine(IsValidPhone("1212"));
Console.WriteLine(IsValidPhone("147-555-1212"));
Console.WriteLine(IsValidPhone("133 443 1660"));
Console.WriteLine(IsValidPhone("133 471 4149"));
Console.WriteLine(IsValidPhone("1334431660"));
Console.WriteLine(IsValidPhone("1334714149"));
public static bool IsValidPhone(string Phone)
if (string.IsNullOrEmpty(Phone))
var r = new Regex(@"((?:\(?[2-9](?(?=1)1[02-9]|(?(?=0)0[1-9]|\d{2}))\)?\D{0,3})(?:\(?[2-9](?(?=1)1[02-9]|\d{2})\)?\D{0,3})\d{4})");