libphonenumber-csharp 8.13.51

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package libphonenumber-csharp --version 8.13.51                
NuGet\Install-Package libphonenumber-csharp -Version 8.13.51                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="libphonenumber-csharp" Version="8.13.51" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add libphonenumber-csharp --version 8.13.51                
#r "nuget: libphonenumber-csharp, 8.13.51"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install libphonenumber-csharp as a Cake Addin
#addin nuget:?package=libphonenumber-csharp&version=8.13.51

// Install libphonenumber-csharp as a Cake Tool
#tool nuget:?package=libphonenumber-csharp&version=8.13.51                

Build status codecov NuGet

C# port of Google's libphonenumber library.

The code was rewritten from the Java source mostly unchanged, please refer to the original documentation for sample code and API documentation.

The original Apache License 2.0 was preserved.

See this for details about the port.

Phone number metadata is updated in the Google repo approximately every two weeks. This library is automatically updated by a scheduled github action to include the latest metadata, usually within a day.

Installation

Run the following command to add this library to your project

dotnet add package libphonenumber-csharp

Available on NuGet as package libphonenumber-csharp.

Examples

Parsing a phone number

using PhoneNumbers;

var phoneNumberUtil = PhoneNumberUtil.GetInstance();
var e164PhoneNumber = "+44 117 496 0123";
var nationalPhoneNumber = "2024561111";
var smsShortNumber = "83835";
var phoneNumber = phoneNumberUtil.Parse(e164PhoneNumber, null);
phoneNumber = phoneNumberUtil.Parse(nationalPhoneNumber, "US");
phoneNumber = phoneNumberUtil.Parse(smsShortNumber, "US");

Formatting a phone number

using PhoneNumbers;

var phoneNumberUtil = PhoneNumberUtil.GetInstance();
var phoneNumber = phoneNumberUtil.Parse("+14156667777", "US");
var formattedPhoneNumber = phoneNumberUtil.Format(phoneNumber, PhoneNumberFormat.INTERNATIONAL);
var formattedPhoneNumberNational = phoneNumberUtil.Format(phoneNumber, PhoneNumberFormat.NATIONAL);

Console.WriteLine(formattedPhoneNumber.ToString()); // +1 415-666-7777
Console.WriteLine(formattedPhoneNumberNational.ToString()); // (415) 666-7777

Check if a phone number is valid

using PhoneNumbers;

var phoneNumberUtil = PhoneNumberUtil.GetInstance();
var phoneNumber = phoneNumberUtil.Parse("+14156667777", "US");
var isValid = phoneNumberUtil.IsValidNumber(phoneNumber);

Console.WriteLine(isValid); // true

Get the type of a phone number

using PhoneNumbers;

var phoneNumberUtil = PhoneNumberUtil.GetInstance();
var phoneNumber = phoneNumberUtil.Parse("+14156667777", "US");
var numberType = phoneNumberUtil.GetNumberType(phoneNumber);

Console.WriteLine(numberType); // PhoneNumberType.FIXED_LINE_OR_MOBILE

See PhoneNumberType.cs for the various possible types of phone numbers

Get the region code for a phone number

using PhoneNumbers;

var phoneNumberUtil = PhoneNumberUtil.GetInstance();
var phoneNumber = phoneNumberUtil.Parse("+14156667777", null);
var regionCode = phoneNumberUtil.GetRegionCodeForNumber(phoneNumber);

Console.WriteLine(regionCode); // US

Features

  • Parsing/formatting/validating phone numbers for all countries/regions of the world.
  • GetNumberType - gets the type of the number based on the number itself; able to distinguish Fixed-line, Mobile, Toll-free, Premium Rate, Shared Cost, VoIP and Personal Numbers (whenever feasible).
  • IsNumberMatch - gets a confidence level on whether two numbers could be the same.
  • GetExampleNumber/GetExampleNumberByType - provides valid example numbers for 218 countries/regions, with the option of specifying which type of example phone number is needed.
  • IsPossibleNumber - quickly guessing whether a number is a possible phone number by using only the length information, much faster than a full validation.
  • AsYouTypeFormatter - formats phone numbers on-the-fly when users enter each digit.
  • FindNumbers - finds numbers in text input

See PhoneNumberUtil.cs for the various methods and properties available.

ToDo

  • port read / write source xml data to binary for better performance and smaller .nupkg size (WIP)
  • update / add / port new unit tests and logging from java source

How to unfold automatic generated files

  • Install Jetbrains - Resharper for Visual Studio
  • File by file, right click and "Cleanup code"
  • Check the unfolded file

Running tests locally

To run tests locally, you will need a zip version of the geocoding.zip file stored in the resources folder and testgeocoding.zip file stored in the resources/test folder.

On linux, you can run the following commands to generate the zip accordingly

(cd resources/geocoding; zip -r ../../resources/geocoding.zip *)
(cd resources/test/geocoding; zip -r ../../../resources/test/testgeocoding.zip *)

For windows, you can use the following powershell script

Compress-Archive -Path "resources\geocoding\*" -DestinationPath "resources\geocoding.zip"
Compress-Archive -Path "resources\test\geocoding\*" -DestinationPath "resources\test\testgeocoding.zip"

Contributing

See CONTRIBUTING.md

Donations

Buy me a beer

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (117)

Showing the top 5 NuGet packages that depend on libphonenumber-csharp:

Package Downloads
N3O.Umbraco.Validation

TODO

OrchardCore.Users

Orchard Core CMS is a Web Content Management System (CMS) built on top of the Orchard Core Framework. The Users module adds user management functionality.

OrchardCore.Application.Cms.Core.Targets

Orchard Core CMS is a Web Content Management System (CMS) built on top of the Orchard Core Framework. Converts the application into a modular OrchardCore CMS application with TheAdmin theme but without any front-end Themes.

TheTheme

Orchard Core CMS is a Web Content Management System (CMS) built on top of the Orchard Core Framework. The default Theme - Can be used as base theme for new themes.

OrchardCore.Application.Cms.Targets

Orchard Core CMS is a Web Content Management System (CMS) built on top of the Orchard Core Framework. Converts the application into a modular OrchardCore CMS application with following themes. - TheAdmin Theme - SafeMode Theme - TheAgency Theme - TheBlog Theme - TheComingSoon Theme - TheTheme theme

GitHub repositories (5)

Showing the top 5 popular GitHub repositories that depend on libphonenumber-csharp:

Repository Stars
OrchardCMS/OrchardCore
Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework.
ONLYOFFICE/CommunityServer
Free open source office suite with business productivity tools: document and project management, CRM, mail aggregator.
bitfoundation/bitplatform
Build all of your apps using what you already know and love ❤️
notifo-io/notifo
Multi channel notification service for collaboration tools, e-commerce, news service and more.
shr670377723/CommunityServer-master
Version Downloads Last updated
8.13.52 25,407 12/13/2024
8.13.51 77,693 12/2/2024
8.13.50 136,599 11/16/2024
8.13.49 152,132 11/4/2024
8.13.48 93,849 10/23/2024
8.13.47 353,853 10/4/2024
8.13.46 139,745 9/25/2024
8.13.45 322,497 9/6/2024
8.13.44 201,560 8/26/2024
8.13.43 321,775 8/9/2024
8.13.42 202,330 7/26/2024
8.13.41 22,291 7/25/2024
8.13.40 450,714 7/3/2024
8.13.39 326,715 6/15/2024
8.13.38 179,131 6/5/2024
8.13.37 656,849 5/17/2024
8.13.36 225,723 5/3/2024
8.13.35 332,658 4/19/2024
8.13.34 341,885 4/5/2024
8.13.33 309,144 3/25/2024
8.13.32 299,934 3/12/2024
8.13.31 242,445 2/25/2024
8.13.30 367,016 2/9/2024
8.13.29 357,259 1/26/2024
8.13.28 21,414 1/25/2024
8.13.27 706,871 12/21/2023
8.13.26 524,032 11/29/2023
8.13.25 342,610 11/20/2023
8.13.24 616,343 10/31/2023
8.13.23 366,280 10/17/2023
8.13.22 414,357 9/29/2023
8.13.21 208,778 9/20/2023
8.13.20 329,984 9/7/2023
8.13.19 319,508 8/22/2023
8.13.18 403,484 8/3/2023
8.13.17 140,629 7/27/2023
8.13.16 230,985 7/11/2023
8.13.15 1,689 7/11/2023
8.13.14 697,243 6/15/2023
8.13.13 1,717 6/15/2023
8.13.12 1,727 6/15/2023
8.13.11 1,127,524 4/27/2023
8.13.10 121,548 4/20/2023
8.13.9 213,731 4/10/2023
8.13.8 193,320 3/27/2023
8.13.7 765,690 3/3/2023
8.13.6 557,730 2/10/2023
8.13.5 250,019 1/29/2023
8.13.4 394,347 1/9/2023
8.13.3 439,970 12/22/2022
8.13.2 691,111 12/8/2022
8.13.1 256,857 11/28/2022
8.13.0 547,925 11/8/2022
8.12.57 807,299 10/14/2022
8.12.56 819,008 9/23/2022
8.12.55 514,223 9/9/2022
8.12.54 434,818 8/22/2022
8.12.53 486,857 8/8/2022
8.12.52 494,214 7/19/2022
8.12.51.1 155,505 7/12/2022
8.12.50 835,175 6/13/2022
8.12.49 392,078 6/1/2022
8.12.48 314,370 5/18/2022
8.12.47 6,521 5/18/2022
8.12.46 824,533 4/15/2022
8.12.45 1,144,036 3/14/2022
8.12.44 104,494 3/9/2022
8.12.43 506,735 2/14/2022
8.12.42 1,982 2/14/2022
8.12.41 1,989 2/14/2022
8.12.40 2,080 2/14/2022
8.12.39 2,055 2/14/2022
8.12.38 1,747,408 12/15/2021
8.12.37 2,519 12/15/2021
8.12.36 2,381 12/15/2021
8.12.35 2,167 12/15/2021
8.12.34 1,842,130 10/7/2021
8.12.33 420,698 9/23/2021
8.12.32 227,275 9/11/2021
8.12.31 2,532 9/11/2021
8.12.30 302,603 8/18/2021
8.12.29 2,326 8/18/2021
8.12.28 477,889 7/23/2021
8.12.27 263,063 7/8/2021
8.12.26 151,416 6/25/2021
8.12.25 139,138 6/16/2021
8.12.24 848,028 5/31/2021
8.12.23 250,982 5/13/2021
8.12.22 380,076 4/30/2021
8.12.21 365,459 4/8/2021
8.12.19 616,337 3/2/2021
8.12.18 499,975 2/10/2021
8.12.17 263,896 1/27/2021
8.12.16 148,614 1/15/2021
8.12.15 513,721 12/18/2020
8.12.14 325,987 12/4/2020
8.12.13 514,345 11/18/2020
8.12.11 1,095,205 10/9/2020
8.12.10 191,806 9/29/2020
8.12.9 416,007 9/2/2020
8.12.8 461,065 8/17/2020
8.12.7 514,321 7/21/2020
8.12.6 194,631 7/6/2020
8.12.5 2,652 7/6/2020
8.12.4 527,063 5/21/2020
8.12.3 202,424 5/8/2020
8.12.2 234,487 4/23/2020
8.12.1 531,876 3/31/2020
8.12.0 291,343 3/20/2020
8.11.5 313,058 3/3/2020
8.11.4 299,178 2/13/2020
8.11.3 287,513 2/3/2020
8.11.2 868,064 1/16/2020
8.11.1 399,421 12/12/2019
8.11.0 124,536 11/29/2019
8.10.23 94,935 11/18/2019
8.10.22 55,428 11/14/2019
8.10.21 438,690 10/17/2019
8.10.20 195,198 10/3/2019
8.10.19 194,662 9/21/2019
8.10.18 46,280 9/17/2019
8.10.17 294,999 8/16/2019
8.10.16 91,858 8/5/2019
8.10.15 199,828 7/18/2019
8.10.14 214,291 7/1/2019
8.10.13 448,226 5/31/2019
8.10.12 269,273 5/15/2019
8.10.11 84,865 5/7/2019
8.10.10 135,339 4/17/2019
8.10.9 254,183 4/5/2019
8.10.8 113,824 3/23/2019
8.10.7 148,325 3/11/2019
8.10.6 147,400 2/22/2019
8.10.5 488,244 2/8/2019
8.10.4 194,557 1/25/2019
8.10.3 136,697 1/11/2019
8.10.2 370,010 12/7/2018
8.10.1 64,979 11/29/2018
8.10.0 37,714 11/29/2018
8.9.16 526,163 10/19/2018
8.9.15 121,285 10/6/2018
8.9.14 93,292 9/21/2018
8.9.13 117,259 9/7/2018
8.9.12 227,380 8/25/2018
8.9.11 93,267 8/18/2018
8.9.10 316,580 7/12/2018
8.9.9 79,850 6/29/2018
8.9.8 71,262 6/15/2018
8.9.7 85,284 5/30/2018
8.9.6 131,242 5/16/2018
8.9.5 37,783 5/4/2018
8.9.4 107,272 4/17/2018
8.9.3 40,432 4/5/2018
8.9.2 72,403 3/19/2018
8.9.1 34,422 3/8/2018
8.9.0 49,760 2/22/2018
8.8.11 63,471 2/8/2018
8.8.10 36,912 1/25/2018
8.8.9 219,281 1/10/2018
8.8.8 149,653 12/8/2017
8.8.7 30,632 12/1/2017
8.8.6 69,156 11/17/2017
8.8.5 164,251 10/31/2017
8.8.4 139,007 10/17/2017
8.8.3 64,588 10/6/2017
8.8.2 50,436 9/22/2017
8.8.1 47,629 9/8/2017
8.8.0 118,183 8/22/2017
8.7.1 43,959 8/3/2017
8.7.0.1 55,989 7/21/2017
8.6.0.1 4,720 7/18/2017
8.6.0 43,209 7/10/2017
8.3.1.2 98,720 6/24/2017
8.3.1.1 128,617 3/13/2017
8.3.1 21,088 3/4/2017
7.7.4 337,435 11/13/2016
7.5.1 417,519 8/6/2016
7.2.5 447,011 2/11/2016
7.0.11 153,242 10/5/2015
7.0.9 82,568 8/16/2015
7.0.5.5 79,703 5/27/2015
7.0.5.4 3,207 5/23/2015
7.0.5.3 18,454 4/28/2015
7.0.5.1 3,017 4/27/2015
7.0.5 3,276 4/25/2015
4.10.0.62 304,945 8/21/2012
4.10.0.61 3,141 8/9/2012
4.10.0.59 3,315 7/27/2012
4.10.0.55 3,311 7/19/2012
4.9.0.52 3,221 7/13/2012
4.9.0.43 3,113 7/10/2012
4.9.0.42 3,233 7/9/2012
4.8.0.35 3,481 6/22/2012
4.8.0.33 4,090 6/16/2012
4.8.0.31 3,222 6/7/2012
4.8.0.30 3,945 5/31/2012
4.8.0.24 3,649 5/9/2012
4.7.0.21 4,507 4/28/2012
4.7.0.19 3,202 4/25/2012
4.6.0.16 3,538 3/30/2012
4.6.0.13 13,409 2/10/2012
4.5.0.9 6,939 1/30/2012
4.5.0.6 3,291 1/21/2012
4.5.0.4 4,169 1/20/2012
4.4.0.1 30,555 1/10/2012
3.8.0.400 3,353 11/28/2011
3.8.0.399 3,302 11/27/2011
3.8.0.394 3,333 11/24/2011
3.8.0.342 3,425 9/17/2011
3.7.1.342 3,321 9/17/2011
3.7.1.312 3,275 8/5/2011
3.7.1.306 13,129 8/5/2011