45 votes

libphonenumber standalone (sans les masses de dépendances de google) ? Une autre librairie ?

J'envisage d'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 le JavaScript, privilégiant jQuery, jQueryUI, requirejs, etc.

libphonenumber semble génial ... sauf que la version javascript (svn co http://libphonenumber.googlecode.com/svn/trunk/javascript/ libphonenumber-js) est truffé d'appels goog.require. Si l'on exécute la démo (libphonenumber-js/i18n/phonenumbers/demo.html si vous l'avez vérifiée comme suggéré), elle fait appel à des tonnes de bibliothèques google depuis 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

Je pense que si je compile ce document en utilisant le compilateur de fermeture ("Si vous donnez au paramètre use_closure_library une valeur de true, le compilateur recherche les déclarations goog.require() dans le code source et fournit le code de la bibliothèque de fermeture demandé par ces déclarations", https://developers.google.com/closure/compiler/docs/api-ref ) Je peux réduire le nombre brut de requêtes, mais cela semble toujours être une quantité de contenu plutôt excessive pour un analyseur de numéros de téléphone, même complet.

Ma question a deux réponses possibles :

  1. Un moyen d'utiliser libphonenumber en JavaScript sans avoir à faire appel à toutes les bibliothèques de base JavaScript de Google.
  2. Une autre bibliothèque autonome (c'est-à-dire qui n'a pas des dizaines de dépendances) de traitement des numéros de téléphone de première classe, avec des implémentations JavaScript et Java.

Toutes les suggestions sont les bienvenues.

1 votes

Je suis tombé sur cette réponse et j'ai pensé que cela pourrait vous plaire aussi (si vous en avez encore besoin).

35voto

rossp Points 900

Il semble que le code de www.phoneformat.com combine tout ce qui est nécessaire dans un seul fichier .JS : http://www.phoneformat.com/

Il semble que cela comprenne le boilerplate de Google, la base de données du format du téléphone et quelques fonctions d'aide.

8voto

jackocnr Points 3491

J'ai un construction sur mesure (actuellement 220KB) que j'utilise pour mon Entrée du téléphone international avec de nombreuses fonctions d'aide exposées. Lire la source pour les détails.

5voto

Gil SH Points 706

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

Il n'y a qu'une seule méthode, mais vous pouvez faire beaucoup de choses avec elle.

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

1 votes

Merci, c'est plus utile pour la validation. Le seul problème, c'est qu'il écrase l'i18n, j'ai dû faire un changement dans le plugin(

2 votes

Pourquoi avoir mis cette bibliothèque sous licence GPL alors que la librairie libphonenumber sur laquelle elle est basée utilise la licence apache ?

1voto

Grokify Points 7043

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 elle n'est pas sur NPM. La version de Rui Marinho est sur NPM.

0voto

Chockomonkey Points 2365

Je viens de passer 2 jours à résoudre ce problème. Pour l'instant, vous pouvez télécharger une version simplifiée de libphonenumber-js à l'adresse suivante aquí

le déposer 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>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X