using System.Text.RegularExpressions;
public static void Main()
var phoneNumberUtil = PhoneNumbers.PhoneNumberUtil.GetInstance();
var defaultRegion = "CL";
var e164PhoneNumber = "+44 117 496 0123";
var nationalPhoneNumber = "2024561111";
var smsShortNumber = "83835";
var phoneNumber = phoneNumberUtil.Parse(e164PhoneNumber, null);
print("{0} => {1} ({2})", e164PhoneNumber, phoneNumber, phoneNumber.CountryCode);
phoneNumber = phoneNumberUtil.Parse(nationalPhoneNumber, "US");
print("{0} => {1} ({2})", nationalPhoneNumber, phoneNumber, phoneNumber.CountryCode);
phoneNumber = phoneNumberUtil.Parse(smsShortNumber, "US");
print("{0} => {1} ({2})", smsShortNumber, phoneNumber, phoneNumber.CountryCode);
var roPhone1 = "+40723456789";
phoneNumber = phoneNumberUtil.Parse(roPhone1, null);
print("{0} => {1} ({2})", roPhone1, phoneNumber, phoneNumber.CountryCode);
var roPhone2 = "40723456789";
phoneNumber = phoneNumberUtil.Parse(roPhone2, "RO");
var phoneNoFormatted = phoneNumberUtil.FormatNumberForMobileDialing(phoneNumber, "CL", false);
var regionCode = phoneNumberUtil.GetRegionCodeForNumber(phoneNumber);
var regionPrefix = phoneNumberUtil.GetMetadataForRegion(regionCode).InternationalPrefix;
print("{0} => {1} ({2}): country code = ({4}){3} ({5}), national no = {6} leading 0s = {7}",
phoneNumber.NationalNumber,
phoneNumber.NumberOfLeadingZeros );
var clPhone1 = "(+56) 2-2782-1586";
phoneNumber = phoneNumberUtil.Parse(clPhone1, null);
phoneNoFormatted = phoneNumberUtil.FormatNumberForMobileDialing(phoneNumber, defaultRegion, false);
regionCode = phoneNumberUtil.GetRegionCodeForNumber(phoneNumber);
regionPrefix = phoneNumberUtil.GetNddPrefixForRegion(regionCode,false);
print("{0} => {1} ({2}): country code = ({4}){3} ({5}), national no = {6} leading 0s = {7}",
phoneNumberUtil.FormatInOriginalFormat(phoneNumber, defaultRegion),
phoneNumber.NationalNumber,
phoneNumber.NumberOfLeadingZeros );
print("#section:AUSTRALIA");
var auPhone1 = "0011 64 3 477 4000";
phoneNumber = phoneNumberUtil.Parse(auPhone1, "AU");
phoneNoFormatted = phoneNumberUtil.FormatNumberForMobileDialing(phoneNumber, "CL", false);
regionCode = phoneNumberUtil.GetRegionCodeForNumber(phoneNumber);
regionPrefix = phoneNumberUtil.GetNddPrefixForRegion(regionCode,false);
print("{0} => {1} ({2}): country code = ({4}){3} ({5}), national no = {6} leading 0s = {7}",
phoneNumber.NationalNumber,
phoneNumber.NumberOfLeadingZeros );
print("#section:RUSSIA");
var ruPhone1 = "+78122723344";
phoneNumber = phoneNumberUtil.Parse(ruPhone1, "RU");
phoneNoFormatted = phoneNumberUtil.FormatNumberForMobileDialing(phoneNumber, "CL", false);
regionCode = phoneNumberUtil.GetRegionCodeForNumber(phoneNumber);
regionPrefix = phoneNumberUtil.GetMetadataForRegion(regionCode).InternationalPrefix;
print("{0} => {1} ({2}): country code = ({4}){3} ({5}), national no = {6} leading 0s = {7}",
phoneNumber.NationalNumber,
phoneNumber.NumberOfLeadingZeros );
private static void print( string message, params object[] args )
if(null == message) return;
if(String.IsNullOrWhiteSpace(message))
if(message.IndexOf("#section:") == 0 )
Console.WriteLine( String.Format("--/ {0}---------------------------------------------------------------------------------------------------------------------",
(String.Format( (new Regex("^#section:")).Replace(message,""), args).ToUpper() + " /" ).PadRight(50, '-') )) ;
if(message.IndexOf("#endsection") == 0 )
Console.WriteLine( String.Format("--/ -----------------------------------------------------------------------------------------------------------------------------------------------------------------------",
String.Format((new Regex("^#section")).Replace(message,""), args) )) ;
if(args == null || args.Length > 0)
Console.WriteLine( String.Format("\t" + message, args)) ;
Console.WriteLine(message);