Giter Site home page Giter Site logo

ruimarinho / google-libphonenumber Goto Github PK

View Code? Open in Web Editor NEW
1.3K 1.3K 142.0 5.73 MB

The up-to-date and reliable Google's libphonenumber package for node.js.

Home Page: https://ruimarinho.github.io/google-libphonenumber

License: Other

JavaScript 99.01% HTML 0.64% Shell 0.35%
formatter libphonenumber parser phone

google-libphonenumber's People

Contributors

delaguilaluis avatar dependabot[bot] avatar ex-kaiser avatar fixe avatar giggsey avatar kohenkatz avatar manuelvillar avatar mathieumg avatar ruimarinho avatar scop avatar styfle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

google-libphonenumber's Issues

Unable to Access RegionCode

If you take a look at the google tests, you can see that you are able to access a RegionCode dictionary right off of the main lib. However, this comes back undefined:

> var libphonenumber = require('google-libphonenumber')
undefined
> libphonenumber.RegionCode
undefined

Any thoughts on how this is missing?

throw flag

Hello,

would it be possible/feasible/allowable/... to pass a flag to choose if we want to throw an error or receive an error string (ideally in an 'err' property)?

I'm using your package in the sync validate function of redux-forms and i need to try...catch every time to not destroy what the user is typing when i could use the error string to show the error with internationalization when the user corrects his input.

PhoneMetadataCollection goog.require'd but not used

/app/node_modules/google-libphonenumber/src/phonenumberutil.js:45: ERROR - 'i18n.phonenumbers.PhoneMetadataCollection' goog.require'd but not used
goog.require('i18n.phonenumbers.PhoneMetadataCollection');
^

1 error(s), 0 warning(s)

getNumberType() returns UNKNOWN for some valid TOLL_FREE number

PhoneNumberUtil phUtil = PhoneNumberUtil.getInstance();
PhoneNumber number1, number2;
number1 = phUtil.parse("1-800-456-1414", "US"); // works fine
number2 = phUtil.parse("1-800-100-8731", "US");
PhoneNumberType pnType = phUtil.getNumberType(number2);

For number1, I get TOLL_FREE, but for number2, I get UNKNOWN.

Any idea why?

phoneUtil.getNumberType causes error

I'm getting the following exception when using:

phoneUtil.getNumberType('4477516575751')

Error:

Error: Uncaught (in promise): TypeError: a.getCountryCodeOrDefault is not a function
TypeError: a.getCountryCodeOrDefault is not a function
at i18n.phonenumbers.PhoneNumberUtil.getRegionCodeForNumber (libphonenumber.js:4269)
at i18n.phonenumbers.PhoneNumberUtil.getNumberType (libphonenumber.js:4216)

Compatibility with browserify

Just wondering if this library is intended to be usable with browserify. When I require it I get an error "fs.readFileSync is not a function"

isValidNumber failing ?

Hi.

Im trying to use this package in a project but

phoneUtil.isValidNumber(phoneNr);
gives me
TypeError: a.getCountryCodeOrDefault is not a function.

So for testing i tried it out in npm browser test site (link below) and it gave me the same error: https://tonicdev.com/npm/google-libphonenumber

Heres the copy paste code to test:

require("google-libphonenumber")
// Require `PhoneNumberFormat`.
var PNF = require('google-libphonenumber').PhoneNumberFormat;

// Get an instance of `PhoneNumberUtil`.
var phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();

// Parse number with country code.
var phoneNumber = phoneUtil.parse('202-456-1414', 'US');

// Print number in the international format.
console.log(phoneUtil.format(phoneNumber, PNF.INTERNATIONAL));
// => +1 202-456-1414

var phoneNr = {
 "country_code": 41,
 "national_number": 446681800
};
phoneUtil.isValidNumber(phoneNr);

The phoneUtil.format works but not phoneUtil.isValidNumber. I might be doing something wrong but i cant figure out what.
Do you guys get isValidNumber working?

isValidNumber always returns false

I have tried numerous ways to validate a number with isValidNumber() but it always returns false. For example:

phoneUtil.isValidNumberForRegion( phoneUtil.parseAndKeepRawInput('5555555555', 'US'), 'US')

returns false even though parseAndKeepRawInput returns a valid phone object. Scouring the docs and looking at the demo, isPossibleNumber seems to be the only method that indicates a valid phone number. Has isValidNumber been deprecated?

PhoneNumberOfflineGeocoder ?

Hello,

i'm trying to get the geo info for a number but cant seen to find the PhoneMetadataCollection function/values ??

i even searched the source but not luck ๐Ÿ˜จ

Thanks

Warning about pre-built source when using webpack

When using google-libphonenumber installed via npm with webpack, I get the following warning on each build. I believe it is common to provide both source and dist files in node packages, am I right? That should solve this problem.

WARNING in ./~/google-libphonenumber/dist/libphonenumber.js
Critical dependencies:
1:487-494 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results.
 @ ./~/google-libphonenumber/dist/libphonenumber.js 1:487-494

Invalid country calling code when using unknown region

I'm trying to format 44 20 7928 5211 in E164 with the expected output of +442079285211

However when I parse it with the US region code it is deemed an invalid number, and when i parse it with the ZZ code I get an invalid country code error. Is there any recommended way of parsing a number when there's no default country code? It seemed like ZZ would be the right approach.

Importing from typescript doesn't work.

Hi I'm trying to use this lib in a typescript project, when I do import { PhoneNumberUtil, PhoneNumber, PhoneNumberFormat, AsYouTypeFormatter } from 'google-libphonenumber'; I get an error saying "could not find declaration file for module 'google-libphonenumber'"

There's a @types/google-libphonenumber package but it has outdated definitions, thus it doesn't have all functionality (like extractPossibleNumber)

Is it possible to use this module with typescript?

Thanks.

'browser' version does not seem ready to usage inside a browser

I have loaded in an HTML page the code stored in the dist/browser directory.
I cannot find any global variable ready to be called by my custom code.

My view is that the only point of having a dist/browser directory is to offer standalone browser-ready code, equipped with a local README that explains how to use it.

Observation with India phone number parsing

`var region = 'IN';
var phone = '4155216849';
var phoneNumber = phoneUtil.parse(phone, region);

console.log(phone + ' isValid ' + phoneUtil.isValidNumber(phoneNumber));
console.log(phone + ' number type ' + phoneUtil.getNumberType(phoneNumber));
console.log(phoneUtil.format(phoneNumber, PNF.INTERNATIONAL));`

Output:

4155216849 isValid true

4155216849 number type 0

+91 4155 216 849

I tried dialing this number in India and seems its not a valid number in India.

Update tags from x.y.z to vX.Y.Z

Following npm's convention when using npm version, tags will be updated to include the v prefix. Existing tags will be renamed.

Getting an assertion error on require of the library.

Just started getting this error, have a version of the code running perfectly on our live server. Running "google-libphonenumber": "^3.0.0", on node v8.1.4, npm 5.3.0

{ 
  err:{ 
    AssertionError
      at new goog.asserts.AssertionError (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:1208:20)
      at Object.goog.asserts.doAssertFailure_ (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:1226:7)
      at Object.goog.asserts.assert (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:1233:53)
      at new goog.proto2.FieldDescriptor (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:1960:16)
      at Function.goog.proto2.Message.createDescriptor (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:2255:22)
      at i18n.phonenumbers.PhoneMetadata.getDescriptor (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:3130:79)
      at i18n.phonenumbers.PhoneMetadata.goog.proto2.Message (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:2080:23)
      at new i18n.phonenumbers.PhoneMetadata (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:2592:23)
      at Object.1 (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:4684:56)
      at s (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:1:690)
      at e (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:1:861)
      at **PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:1:879
      at i (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:1:150)
      at Object.<anonymous> (**PATH**/node_modules/google-libphonenumber/dist/libphonenumber.js:1:392)
      at Module._compile (module.js:569:30)
      at Object.Module._extensions..js (module.js:580:10)
      at Module.load (module.js:503:32)
      at tryModuleLoad (module.js:466:12)
      at Function.Module._load (module.js:458:3)
      at Module.require (module.js:513:17)
      at require (internal/module.js:11:18)
      at Object.<anonymous> (**PATH**//orders/data/order-container.js:5:21)
    message: 'Assertion failed',
    reportErrorToServer: true,
    messagePattern: 'Assertion failed' 
  }
}

the code that triggers the error:

const Container = require('./container');
const phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();
const PNF = require('google-libphonenumber').PhoneNumberFormat;

class OrderContainer extends Container {}

the const phoneUtil line is where it is throwing the error. I'm not sure what changed, we haven't been working in this section of the code so it is odd for it to have started erroring.

Types

Adds .d.ts for type checking in VSCode and others, please.

Phone number validation fails for numbers starting with 77******** for IN region

Numbers starting with 77******** shows invalid number for the given region 'IN'.
The API call with the latest version of google-libphonenumber, shows the wrong result for isValidNumber()

Have filed the bug with Google Phone lib as well :
https://issuetracker.google.com/issues/69244622

This is Google's API response :
http://libphonenumber.appspot.com/phonenumberparser?number=%2B91+7707059626

Need to fix this, provided Google API is fixed first. Adding is as a TODO .

Here is the complete implementation as it is from npm runkit of google-libphonenumber

var phoneUtil = require("google-libphonenumber").PhoneNumberUtil.getInstance();
var phoneNumber0 = "+917707059626";
var phoneNumber1 = "+918197800510";
var phoneNumber2 = "+917707111289";
var phone0 = phoneUtil.parse(phoneNumber0);
var phone1 = phoneUtil.parse(phoneNumber1);
var phone2 = phoneUtil.parse(phoneNumber2);
console.log(phoneUtil.isValidNumber(phone0)); // failed
console.log(phoneUtil.isValidNumber(phone1)); // success
console.log(phoneUtil.isValidNumber(phone2)); // failed

basic usage question on how to get valid number function/property

Sorry if this was in the demo or documentation somewhere, but how can I get the following from a number using this library? Any documentation or samples on how to get this from a

****Validation Results:****
         Result from isPossibleNumber()
         Result from isValidNumber()
         Result from isValidNumberForRegion()
         Result from getNumberType()

  ****Formatting Results:****
         E164 format

Usage with webpack on the browser - follow up https://github.com/seegno/google-libphonenumber/issues/38

Hello,

When bundling with webpack, I'm getting this warning, like in #38:

WARNING in ./~/google-libphonenumber/dist/browser/libphonenumber.js
Critical dependencies:
1:487-494 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results.
 @ ./~/google-libphonenumber/dist/browser/libphonenumber.js 1:487-494

This is because you have on package.json:
"browser": "dist/browser/libphonenumber.js",

Webpack will resolve the import to this file by default (unless you are using webpack with 'target': 'node' for usage in node.js, which is not the most common usage).

I don't know if taking this line from the package.json will break browserify builds (I'm not experient with browserify), but from what I can tell from other libraries, this is not needed.

So what is the difference between dist/browser/libphonenumber.js and dist/libphonenumber ?
Can we just keep the 'main' entry on package.json?

Namespace is trademark infringement

Hi,

Nice to see that you maintain a project like this, but it heavily infringes on Googles trademark, and is in no way related to, or maintained by Google. You should in my opinion look to change this.

Please refer to the Google Trademarks page for more information:

We cannot approve any company names or application names that incorporate a Google trademark, or that are confusingly similar to Google's trademarks.

https://www.google.com/permissions/faq.html

Better documentation please

As a new user i'm having a hard time familiarizing myself with this library, the google docs are not helping.

A simple layout of the available classes, methods and their arguments would be ideal.

vm.runInContext(...) - Undefined is not a function

Hi,

I wanted to use your module but, I'm using with this error...:

- Undefined is not a function
vm.runInContext(fs.readFileSync(file), sandbox);

Sorry, I'm a not a expert about NPM... so I can't help "more".

Here how I "use" your package:

$ npm install --save-dev google-libphonenumber

Here my file:

var phoneUtil = require('google-libphonenumber').phoneUtil
[...]
function isPhone(str, countryCode)ย {
    try {
      phoneUtil.parse(str, countryCode)
      return (true)
    }
    catch(err) {
      return (false)
    }
}

and the full stack trace:

Uncaught TypeError: undefined is not a function index.js:43
loadScript index.js:48
module.exports.load index.js:2
(anonymous function) bootstrap b4bd7468d6ba5d125b49?019c:504
__webpack_require__ bootstrap b4bd7468d6ba5d125b49?019c:76
fn index.js:6
(anonymous function) index.js:57
(anonymous function) bootstrap b4bd7468d6ba5d125b49?019c:504
__webpack_require__ bootstrap b4bd7468d6ba5d125b49?019c:76
fn StringUtils.js:2
dotNetDateRE bootstrap b4bd7468d6ba5d125b49?019c:504
__webpack_require__ bootstrap b4bd7468d6ba5d125b49?019c:76
fn CreateCustomerId.js:4
(anonymous function) bootstrap b4bd7468d6ba5d125b49?019c:504
__webpack_require__ bootstrap b4bd7468d6ba5d125b49?019c:76
fn CreateCustomer.js:8
(anonymous function) bootstrap b4bd7468d6ba5d125b49?019c:504
__webpack_require__ bootstrap b4bd7468d6ba5d125b49?019c:76
fn index.js:23
(anonymous function) bootstrap b4bd7468d6ba5d125b49?019c:504
__webpack_require__ bootstrap b4bd7468d6ba5d125b49?019c:76
fn index.js:537
(anonymous function) bootstrap b4bd7468d6ba5d125b49?019c:504
__webpack_require__ bootstrap b4bd7468d6ba5d125b49?019c:527
(anonymous function) index.js:531
(anonymous function)

Again, sorry I can't help more...

List of country codes

I see there is some list of region codes, but it doesn't contain the full name of the country and it doesn't have the ISD code for that country eg. +1 for US. Does it make sense to add this in to this library? Is there some other library that includes this? I guess I could create one manually.

Format German phones

Hello,

I have a German phone number like this (4906) 227-7474 and I want to format into international format

var PNF = require('google-libphonenumber').PhoneNumberFormat;
var phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();
var phoneNumber = phoneUtil.parse('(4906) 227-7474', 'DE');
phoneUtil.format(phoneNumber, PNF.INTERNATIONAL);
//phoneUtil.isValidNumber(phoneNumber) is true

I got +49 4906 2277474 but I want to get 49 6227 7474

How can I get it?

FYI:
For Germany https://en.wikipedia.org/wiki/List_of_dialling_codes_in_Germany#06
49 - country code
06 - area code

Thx, Vitaly

getCountryCodeOrDefault is not a function

const phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();
const invalidNumber = '+12223334444';
console.log(`${invalidNumber} is valid: ${phoneUtil.isValidNumber(invalidNumber)}`);

Error message was TypeError: a.getCountryCodeOrDefault is not a function

Looked into /dist/libphonenumber.js a bit and could not find getCountryCodeOrDefault() from there.

Thanks.

phoneUtil.isValidNumberForRegion always gives me false

hi there! Thanks for awesome tool!
one thing I wanna report though: when parsing my Canadian cell phone number isValidNumber() gives me 'false'. Here're the steps to reproduce:

// install lib
npm install google-libphonenumber // installs: [email protected]

// check node version
node --version
v8.7.0

// run node
node

// Require PhoneNumberFormat.
var PNF = require('google-libphonenumber').PhoneNumberFormat;

// Get an instance of PhoneNumberUtil.
var phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();

// parse
var phone_number = phoneUtil.parse("+15197227878", "CA"); // also tried "US"

// check if parsed ok
phoneUtil.isValidNumber(phone_number);
true
phoneUtil.format(phone_number, PNF.E164);
'+15197227878'

// check if valid for region (always gives me false)
phoneUtil.isValidNumberForRegion(phone_number)
false

Thanks,
Dmitry Shevkoplyas

Is 3.0.0 breaking ?

Hi,

I saw in #116 that getNationalSignificantNumber will return an empty string instead of null.

Is this the only breaking change ? Because I saw in the PR code that a lot of code has been deleted.

If there is more, can you list the Breaking changes in the CHANGELOG file ?

Thank you

Warning under Webpack

When using the npm (latest v1.0.12) under Webpack, I'm getting this warning message below in my browser console.
Although its just a warning and not a breaking issue, I was wonder if there is a recommended way around it:

./~/google-libphonenumber/dist/browser/libphonenumber.js
Critical dependencies:
1:487-494 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results.
 @ ./~/google-libphonenumber/dist/browser/libphonenumber.js 1:487-494

isValidNumber throws an error on basic invocation

Just tried it on a blank state:

var phoneUtil = require('google-libphonenumber').PhoneNumberUtil.getInstance();
phoneUtil.isValidNumber('1234');

throws:

TypeError: a.getCountryCodeOrDefault is not a function

update: doesn't seem to work with valid number either, tried the same example like in the browser demo, aka my phone number. the browser demo worked, the node one didn't.

getNumberType returning 1

In the demo getNumberType() seems to return MOBILE but in my code I am getting 1

   var mobileNumberValidator = require('google-libphonenumber').PhoneNumberUtil.getInstance();
   var parsedMobileNumber = mobileNumberValidator.parse(mobileNumber, 'GB');
   var isMobile = mobileNumberValidator.getNumberType(parsedMobileNumber);
   console.log(isMobile) // This is printing: 1

I would like to return MOBILE like in the demo, is there something that I am doing wrong?

Use uncompressed source

I'm using this with webpack, and it tells me:

WARNING in .//google-libphonenumber/dist/browser/libphonenumber.js
Critical dependencies:
1:487-494 This seems to be a pre-built javascript file. Though this is possible, it's not recommended. Try to require the original source to get better results.
@ ./
/google-libphonenumber/dist/browser/libphonenumber.js 1:487-494

Which seems sensible. I'm not sure about the buildprocess being used here. Is it possible to use the uncompresed files as input to browserify/webpack?

assertion error

var gp = require('google-libphonenumber').PhoneNumberUtil.getInstance();

causes this error

number.js:1058
throw a;
^
AssertionError: Assertion failed
at new goog.asserts.AssertionError (...../node_modules/google-libphonenumber/dist/libphonenumber.js:1051:20)
at Object.goog.asserts.doAssertFailure_ (..../node_modules/google-libphonenumber/dist/libphonenumber.js:1068:7)
at Object.goog.asserts.assert as assert
at new goog.proto2.FieldDescriptor (..../node_modules/google-libphonenumber/dist/libphonenumber.js:1553:16)
at Function.goog.proto2.Message.createDescriptor (..../node_modules/google-libphonenumber/dist/libphonenumber.js:2069:22)
at i18n.phonenumbers.PhoneMetadata.getDescriptor (..../node_modules/google-libphonenumber/dist/libphonenumber.js:2946:117)
at goog.proto2.Message (..../node_modules/google-libphonenumber/dist/libphonenumber.js:1897:23)
at new i18n.phonenumbers.PhoneMetadata (..../node_modules/google-libphonenumber/dist/libphonenumber.js:2411:23)
at Object. (..../node_modules/google-libphonenumber/dist/libphonenumber.js:4432:56)
at Module._compile (module.js:435:26)

incorrect handling any phone numbers with 4-digit country code

Try to select any country with 4-digit country code

code example
mask = phoneUtil.parse(text, country.iso2); //where text save text in input w/o plus
number = phoneUtil.format(mask, PNF.INTERNATIONAL)
// For any 4-digit numbers, started from 1 (+1876, Jamaica) numbers incorrect detected us U.S. number

Phone number validation fails for numbers starting with 8209****** for IN region

Numbers starting with 8209****** shows invalid number for the given region 'IN'. Here is the npm runkit demo for the same.

https://runkit.com/592d3e4bb70f37001158b54d/592d3e4bb70f37001158b54e

However, the API call with the latest version of google-libphonenumber, shows the accurate result.

http://libphonenumber.appspot.com/phonenumberparser?number=%2B91+8209890000

My assumption is there is something wrong with the implementation.

Here is the complete implementation as it is from npm runkit of google-libphonenumber

var phoneUtil = require("google-libphonenumber").PhoneNumberUtil.getInstance();
var phoneNumber0 = "+918209000000";
var phoneNumber1 = "+918197800510";
var phoneNumber2 = "+918209890000";
var phone0 = phoneUtil.parse(phoneNumber0);
var phone1 = phoneUtil.parse(phoneNumber1);
var phone2 = phoneUtil.parse(phoneNumber2);
console.log(phoneUtil.isValidNumber(phone0)); // failed
console.log(phoneUtil.isValidNumber(phone1)); // success
console.log(phoneUtil.isValidNumber(phone2)); // failed

Difference in output when parsing +2349068084779

Running phone number in subject through https://rawgit.com/googlei18n/libphonenumber/master/javascript/i18n/phonenumbers/demo-compiled.html (w/o default country or carrier code) gives the following output:

****Parsing Result:****
{"country_code":234,"national_number":9068084779,"raw_input":"+2349068084779","country_code_source":1}

****Validation Results:****
Result from isPossibleNumber(): true
Result from isValidNumber(): true
Phone Number region: NG
Result from getNumberType(): MOBILE

****Formatting Results:**** 
E164 format: +2349068084779
Original format: +234 906 808 4779
National format: 0906 808 4779
International format: +234 906 808 4779
Out-of-country format from US: 011 234 906 808 4779
Out-of-country format from Switzerland: 00 234 906 808 4779

****AsYouTypeFormatter Results****
Char entered: + Output: +
Char entered: 2 Output: +2
Char entered: 3 Output: +23
Char entered: 4 Output: +234 
Char entered: 9 Output: +234 9
Char entered: 0 Output: +234 90
Char entered: 6 Output: +234 9 06
Char entered: 8 Output: +234 9 068
Char entered: 0 Output: +234 9 068 0
Char entered: 8 Output: +234 9 068 08
Char entered: 4 Output: +234 9 068 084
Char entered: 7 Output: +234 9 068 0847
Char entered: 7 Output: +234 906 808 477
Char entered: 9 Output: +234 906 808 4779

As we can see, it's valid phone number. Doing the same using google-libphonenumber produces "unknown phone number". It seems library is up to date with https://github.com/googlei18n/libphonenumber and yet it misbehaves. Any thoughts?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.