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.
Run the following command to add this library to your project
dotnet add package libphonenumber-csharp
Available on NuGet as package libphonenumber-csharp
.
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-7777Check 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); // trueGet 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 numberusing PhoneNumbers; var phoneNumberUtil = PhoneNumberUtil.GetInstance(); var phoneNumber = phoneNumberUtil.Parse("+14156667777", null); var regionCode = phoneNumberUtil.GetRegionCodeForNumber(phoneNumber); Console.WriteLine(regionCode); // US
See PhoneNumberUtil.cs for the various methods and properties available.
Why keep libphonenumber-csharp up to date?A lot of the functionality depends on updated metadata that is published by the google repository, see example here.
This means that if you don't keep the package up to date, methods like IsValidNumber
will return false for newer numbers that rely on the updated metadata
Therefore, we recommend you keep this nuget package as up to date as possible using automated means (such as dependabot) as metadata changes published by the google repository is frequent, usually a few times a month.
For more information on metadata usage, please refer to the main repository faq
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"
See CONTRIBUTING.md
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4