web-dev-qa-db-fra.com

libphonenumber standalone (sans masses de dépendances google)? Alternate lib?

Je cherche à utiliser http://code.google.com/p/libphonenumber/ pour un projet bien établi. Aujourd'hui, le projet n'utilise pas les bibliothèques de Google pour JavaScript, privilégiant jQuery, jQueryUI, requirejs, etc.

libphonenumber a l'air génial ... sauf que la version javascript (svn co http://libphonenumber.googlecode.com/svn/trunk/javascript/ libphonenumber-js) est incrustée d'appels de goog.require. Si vous lancez la démo (libphonenumber-js/i18n/phonenumbers/demo.html si vous avez emprunté la sortie suggérée), vous accédez à des tonnes de librairies Google de lobse-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

Je crois que si je compile ceci en utilisant le compilateur de fermeture ("Si vous attribuez la valeur true au paramètre use_closure_library, il recherchera les instructions goog.require () dans le code source et fournira le code de bibliothèque de fermeture demandé par ces instructions." , https://developers.google.com/closure/compiler/docs/api-ref ) Je peux réduire le nombre brut de demandes, mais cela me semble toujours une quantité de contenu plutôt excessive pour un numéro de téléphone. analyseur, même complet.

Ma question a deux réponses possibles:

  1. Une façon d'utiliser libphonenumber en JavaScript sans avoir à extraire toutes les bibliothèques de base de Google JavaScript
  2. Une bibliothèque de traitement de numéros de téléphone de première classe, autonome (car elle ne comporte pas des dizaines de dépendances) avec des implémentations JavaScript et Java 

Toutes les suggestions les plus appréciées.

43
S42

J'ai un build personnalisé (actuellement 220 Ko) que j'utilise pour mon International Telephone Input plugin, avec de nombreuses fonctions d'aide exposées. Lisez la source pour plus de détails.

7
jackocnr

Vous pouvez également utiliser ma lib . https://github.com/Gilshallem/phoneparser

Son seulement une méthode, mais vous pouvez faire beaucoup avec elle

parsePhone("12025550104");
result: { countryCode:1, areaCode:202, number:5550104, countryISOCode:"US" }
5
Gil SH

Voici deux implémentations de Google libphonenumber en JavaScript qui n'ont aucune dépendance et sont implémentées dans un seul fichier. J'ai utilisé la version de Nathan Hammond sans problème, mais ce n'est pas sur NPM. La version de Rui Marinho est sur NPM.

1
Grokify

Je viens de passer 2 jours à comprendre cela. Pour le moment, vous pouvez télécharger une version simplifiée de libphonenumber-js à partir de ici

déposez-le en place, avec l'habituel 

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

et commencez à coder! 

<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>
0
Chockomonkey