Question: I am looking at using <http://code.google.com/p/libphonenumber/> for a well-established project. Today the project does not use Google's libraries for JavaScript, favoring jQuery, jQueryUI, requirejs, and so on.

libphonenumber looks awesome ... except that the javascript version (svn co <http://libphonenumber.googlecode.com/svn/trunk/javascript/> libphonenumber-js) is laced with goog.require calls. If one runs the demo (libphonenumber-js/i18n/phonenumbers/demo.html if you checked out as suggested) it pulls in tons of google libraries from closure-library.googlecode.com :

```
GET base.js
GET deps.js
GET error.js
GET string.js
GET asserts.js
GET array.js
GET useragent.js
GET browserfeature.js
GET tagname.js
GET classes.js
GET math.js
GET coordinate.js
GET size.js
GET object.js
GET dom.js
GET json.js
GET util.js
GET descriptor.js
GET fielddescriptor.js
GET message.js
GET serializer.js
GET objectserializer.js
GET stringbuffer.js
GET lazydeserializer.js
GET pbliteserializer.js

```

I believe if I compile this using the closure compiler ("If you give the use\_closure\_library parameter a value of true, the compiler looks for goog.require() statements in the source code and supplies the Closure Library code requested by any such statements.", <https://developers.google.com/closure/compiler/docs/api-ref>) I can cut down the raw number of requests, but this still seems like a rather excessive amount of content for a phone number parser, even a full-featured one.

My question has two possible answers:

1. A way to use libphonenumber in JavaScript without having to pull in all the Google JavaScript base libraries
2. An alternate standalone (as in doesn't have dozens of dependencies) first-class phone number processing library with both JavaScript and Java implementations

Any and all suggestions most appreciated.

Answer: 
Here are two implementations of Google libphonenumber in JavaScript that have zero dependencies and are implemented in a single file. I've used Nathan Hammond's version without issue but it is not on NPM. Rui Marinho's version is on NPM.

* <https://github.com/nathanhammond/libphonenumber>
* <https://github.com/ruimarinho/google-libphonenumber>
I just spent 2 days figuring this out. For now, anyway, you can download a minified version of libphonenumber-js from [here](https://cdnjs.cloudflare.com/ajax/libs/libphonenumber-js/1.4.2/libphonenumber-js.min.js)

drop it in place, with the usual 

```
<script type="text/javascript" language="javascript" src="/static/js/libphonenumber-js.min.js"></script>

```

and get busy coding! 

```
<script>
    $(".phone-format").keyup(function () {
            var val_old = $(this).val();
            var newString = new libphonenumber.AsYouType('US').input(val_old);
            $(this).focus().val('').val(newString);
    });
</script>

```