libphonenumber-csharp
8.13.41
Prefix Reserved
See the version list below for details.
dotnet add package libphonenumber-csharp --version 8.13.41
NuGet\Install-Package libphonenumber-csharp -Version 8.13.41
<PackageReference Include="libphonenumber-csharp" Version="8.13.41" />
paket add libphonenumber-csharp --version 8.13.41
#r "nuget: libphonenumber-csharp, 8.13.41"
// Install libphonenumber-csharp as a Cake Addin #addin nuget:?package=libphonenumber-csharp&version=8.13.41 // Install libphonenumber-csharp as a Cake Tool #tool nuget:?package=libphonenumber-csharp&version=8.13.41
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
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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 is compatible. 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 was computed. 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. |
.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. |
-
.NETStandard 2.0
- System.Collections.Immutable (>= 1.7.1)
- System.IO.Compression (>= 4.3.0)
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
NuGet packages (106)
Showing the top 5 NuGet packages that depend on libphonenumber-csharp:
Package | Downloads |
---|---|
N3O.Umbraco.Validation
TODO |
|
GlobalPhone
Package Description |
|
LineTen.Core
LineTen core interfaces and helper classes |
|
Flynk.Common.Utils
Utilities for generic applications |
|
horaios.de.Charis.Objects
Package Description |
GitHub repositories (4)
Showing the top 4 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.
|
|
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.44 | 38,275 | 8/26/2024 |
8.13.43 | 104,772 | 8/9/2024 |
8.13.42 | 102,580 | 7/26/2024 |
8.13.41 | 10,448 | 7/25/2024 |
8.13.40 | 210,517 | 7/3/2024 |
8.13.39 | 194,560 | 6/15/2024 |
8.13.38 | 119,286 | 6/5/2024 |
8.13.37 | 336,423 | 5/17/2024 |
8.13.36 | 154,093 | 5/3/2024 |
8.13.35 | 225,781 | 4/19/2024 |
8.13.34 | 240,874 | 4/5/2024 |
8.13.33 | 201,065 | 3/25/2024 |
8.13.32 | 190,364 | 3/12/2024 |
8.13.31 | 198,819 | 2/25/2024 |
8.13.30 | 292,825 | 2/9/2024 |
8.13.29 | 266,611 | 1/26/2024 |
8.13.28 | 19,801 | 1/25/2024 |
8.13.27 | 580,592 | 12/21/2023 |
8.13.26 | 426,356 | 11/29/2023 |
8.13.25 | 291,427 | 11/20/2023 |
8.13.24 | 488,389 | 10/31/2023 |
8.13.23 | 302,839 | 10/17/2023 |
8.13.22 | 366,337 | 9/29/2023 |
8.13.21 | 181,895 | 9/20/2023 |
8.13.20 | 289,162 | 9/7/2023 |
8.13.19 | 281,276 | 8/22/2023 |
8.13.18 | 356,199 | 8/3/2023 |
8.13.17 | 130,524 | 7/27/2023 |
8.13.16 | 215,191 | 7/11/2023 |
8.13.15 | 1,610 | 7/11/2023 |
8.13.14 | 631,036 | 6/15/2023 |
8.13.13 | 1,650 | 6/15/2023 |
8.13.12 | 1,647 | 6/15/2023 |
8.13.11 | 992,845 | 4/27/2023 |
8.13.10 | 108,924 | 4/20/2023 |
8.13.9 | 188,910 | 4/10/2023 |
8.13.8 | 177,189 | 3/27/2023 |
8.13.7 | 656,443 | 3/3/2023 |
8.13.6 | 528,328 | 2/10/2023 |
8.13.5 | 239,937 | 1/29/2023 |
8.13.4 | 371,949 | 1/9/2023 |
8.13.3 | 388,197 | 12/22/2022 |
8.13.2 | 620,617 | 12/8/2022 |
8.13.1 | 243,938 | 11/28/2022 |
8.13.0 | 517,015 | 11/8/2022 |
8.12.57 | 729,229 | 10/14/2022 |
8.12.56 | 760,156 | 9/23/2022 |
8.12.55 | 473,665 | 9/9/2022 |
8.12.54 | 405,160 | 8/22/2022 |
8.12.53 | 452,090 | 8/8/2022 |
8.12.52 | 461,779 | 7/19/2022 |
8.12.51.1 | 149,151 | 7/12/2022 |
8.12.50 | 790,782 | 6/13/2022 |
8.12.49 | 369,785 | 6/1/2022 |
8.12.48 | 301,725 | 5/18/2022 |
8.12.47 | 6,301 | 5/18/2022 |
8.12.46 | 788,632 | 4/15/2022 |
8.12.45 | 1,098,574 | 3/14/2022 |
8.12.44 | 102,088 | 3/9/2022 |
8.12.43 | 471,182 | 2/14/2022 |
8.12.42 | 1,939 | 2/14/2022 |
8.12.41 | 1,942 | 2/14/2022 |
8.12.40 | 2,038 | 2/14/2022 |
8.12.39 | 2,010 | 2/14/2022 |
8.12.38 | 1,652,920 | 12/15/2021 |
8.12.37 | 2,438 | 12/15/2021 |
8.12.36 | 2,327 | 12/15/2021 |
8.12.35 | 2,121 | 12/15/2021 |
8.12.34 | 1,710,095 | 10/7/2021 |
8.12.33 | 397,744 | 9/23/2021 |
8.12.32 | 218,652 | 9/11/2021 |
8.12.31 | 2,466 | 9/11/2021 |
8.12.30 | 292,683 | 8/18/2021 |
8.12.29 | 2,254 | 8/18/2021 |
8.12.28 | 450,989 | 7/23/2021 |
8.12.27 | 254,485 | 7/8/2021 |
8.12.26 | 138,700 | 6/25/2021 |
8.12.25 | 133,646 | 6/16/2021 |
8.12.24 | 813,534 | 5/31/2021 |
8.12.23 | 240,522 | 5/13/2021 |
8.12.22 | 347,620 | 4/30/2021 |
8.12.21 | 346,061 | 4/8/2021 |
8.12.19 | 601,039 | 3/2/2021 |
8.12.18 | 470,892 | 2/10/2021 |
8.12.17 | 258,680 | 1/27/2021 |
8.12.16 | 145,891 | 1/15/2021 |
8.12.15 | 499,717 | 12/18/2020 |
8.12.14 | 314,746 | 12/4/2020 |
8.12.13 | 507,139 | 11/18/2020 |
8.12.11 | 1,068,319 | 10/9/2020 |
8.12.10 | 186,327 | 9/29/2020 |
8.12.9 | 404,561 | 9/2/2020 |
8.12.8 | 444,835 | 8/17/2020 |
8.12.7 | 497,693 | 7/21/2020 |
8.12.6 | 192,091 | 7/6/2020 |
8.12.5 | 2,588 | 7/6/2020 |
8.12.4 | 510,791 | 5/21/2020 |
8.12.3 | 194,963 | 5/8/2020 |
8.12.2 | 228,837 | 4/23/2020 |
8.12.1 | 504,527 | 3/31/2020 |
8.12.0 | 287,367 | 3/20/2020 |
8.11.5 | 304,509 | 3/3/2020 |
8.11.4 | 290,914 | 2/13/2020 |
8.11.3 | 281,405 | 2/3/2020 |
8.11.2 | 836,732 | 1/16/2020 |
8.11.1 | 387,127 | 12/12/2019 |
8.11.0 | 118,119 | 11/29/2019 |
8.10.23 | 91,273 | 11/18/2019 |
8.10.22 | 55,030 | 11/14/2019 |
8.10.21 | 415,652 | 10/17/2019 |
8.10.20 | 185,665 | 10/3/2019 |
8.10.19 | 183,898 | 9/21/2019 |
8.10.18 | 43,553 | 9/17/2019 |
8.10.17 | 287,007 | 8/16/2019 |
8.10.16 | 89,481 | 8/5/2019 |
8.10.15 | 195,766 | 7/18/2019 |
8.10.14 | 199,906 | 7/1/2019 |
8.10.13 | 435,913 | 5/31/2019 |
8.10.12 | 262,934 | 5/15/2019 |
8.10.11 | 84,329 | 5/7/2019 |
8.10.10 | 132,331 | 4/17/2019 |
8.10.9 | 252,060 | 4/5/2019 |
8.10.8 | 111,899 | 3/23/2019 |
8.10.7 | 147,577 | 3/11/2019 |
8.10.6 | 142,948 | 2/22/2019 |
8.10.5 | 468,150 | 2/8/2019 |
8.10.4 | 187,017 | 1/25/2019 |
8.10.3 | 131,202 | 1/11/2019 |
8.10.2 | 356,625 | 12/7/2018 |
8.10.1 | 64,720 | 11/29/2018 |
8.10.0 | 34,999 | 11/29/2018 |
8.9.16 | 455,610 | 10/19/2018 |
8.9.15 | 119,585 | 10/6/2018 |
8.9.14 | 91,594 | 9/21/2018 |
8.9.13 | 116,784 | 9/7/2018 |
8.9.12 | 225,840 | 8/25/2018 |
8.9.11 | 83,163 | 8/18/2018 |
8.9.10 | 307,949 | 7/12/2018 |
8.9.9 | 73,168 | 6/29/2018 |
8.9.8 | 70,771 | 6/15/2018 |
8.9.7 | 81,429 | 5/30/2018 |
8.9.6 | 126,637 | 5/16/2018 |
8.9.5 | 36,875 | 5/4/2018 |
8.9.4 | 104,146 | 4/17/2018 |
8.9.3 | 39,580 | 4/5/2018 |
8.9.2 | 70,617 | 3/19/2018 |
8.9.1 | 33,551 | 3/8/2018 |
8.9.0 | 49,378 | 2/22/2018 |
8.8.11 | 61,698 | 2/8/2018 |
8.8.10 | 36,537 | 1/25/2018 |
8.8.9 | 208,097 | 1/10/2018 |
8.8.8 | 148,483 | 12/8/2017 |
8.8.7 | 30,562 | 12/1/2017 |
8.8.6 | 67,205 | 11/17/2017 |
8.8.5 | 147,242 | 10/31/2017 |
8.8.4 | 136,117 | 10/17/2017 |
8.8.3 | 62,543 | 10/6/2017 |
8.8.2 | 47,682 | 9/22/2017 |
8.8.1 | 47,011 | 9/8/2017 |
8.8.0 | 104,093 | 8/22/2017 |
8.7.1 | 41,823 | 8/3/2017 |
8.7.0.1 | 54,990 | 7/21/2017 |
8.6.0.1 | 4,464 | 7/18/2017 |
8.6.0 | 41,211 | 7/10/2017 |
8.3.1.2 | 96,674 | 6/24/2017 |
8.3.1.1 | 127,013 | 3/13/2017 |
8.3.1 | 20,536 | 3/4/2017 |
7.7.4 | 327,149 | 11/13/2016 |
7.5.1 | 408,759 | 8/6/2016 |
7.2.5 | 425,928 | 2/11/2016 |
7.0.11 | 149,370 | 10/5/2015 |
7.0.9 | 80,558 | 8/16/2015 |
7.0.5.5 | 79,201 | 5/27/2015 |
7.0.5.4 | 3,154 | 5/23/2015 |
7.0.5.3 | 18,080 | 4/28/2015 |
7.0.5.1 | 2,964 | 4/27/2015 |
7.0.5 | 3,217 | 4/25/2015 |
4.10.0.62 | 290,539 | 8/21/2012 |
4.10.0.61 | 3,092 | 8/9/2012 |
4.10.0.59 | 3,267 | 7/27/2012 |
4.10.0.55 | 3,253 | 7/19/2012 |
4.9.0.52 | 3,163 | 7/13/2012 |
4.9.0.43 | 3,060 | 7/10/2012 |
4.9.0.42 | 3,160 | 7/9/2012 |
4.8.0.35 | 3,222 | 6/22/2012 |
4.8.0.33 | 4,015 | 6/16/2012 |
4.8.0.31 | 3,167 | 6/7/2012 |
4.8.0.30 | 3,749 | 5/31/2012 |
4.8.0.24 | 3,596 | 5/9/2012 |
4.7.0.21 | 4,434 | 4/28/2012 |
4.7.0.19 | 3,147 | 4/25/2012 |
4.6.0.16 | 3,473 | 3/30/2012 |
4.6.0.13 | 12,807 | 2/10/2012 |
4.5.0.9 | 6,732 | 1/30/2012 |
4.5.0.6 | 3,240 | 1/21/2012 |
4.5.0.4 | 4,111 | 1/20/2012 |
4.4.0.1 | 29,620 | 1/10/2012 |
3.8.0.400 | 3,302 | 11/28/2011 |
3.8.0.399 | 3,250 | 11/27/2011 |
3.8.0.394 | 3,278 | 11/24/2011 |
3.8.0.342 | 3,354 | 9/17/2011 |
3.7.1.342 | 3,271 | 9/17/2011 |
3.7.1.312 | 3,222 | 8/5/2011 |
3.7.1.306 | 9,516 | 8/5/2011 |