web-dev-qa-db-ja.com

libphonenumberスタンドアロン(多数のGoogle依存関係なし)?代替ライブラリ?

確立されたプロジェクトに http://code.google.com/p/libphonenumber/ を使用することを検討しています。現在、このプロジェクトではJavaScriptにGoogleのライブラリを使用しておらず、jQuery、jQueryUI、requirejsなどを優先しています。

libphonenumberはすごいようです...ただし、javascriptバージョン(svn co http://libphonenumber.googlecode.com/svn/trunk/javascript/ libphonenumber-js)がgoog.require呼び出しで結び付けられている点が異なります。デモを実行すると(提案どおりにチェックアウトした場合はlibphonenumber-js/i18n/phonenumbers/demo.html)、closure-library.googlecode.comから大量のGoogleライブラリを取り込みます。

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

クロージャーコンパイラを使用してこれをコンパイルする場合(「use_closure_libraryパラメーターにtrueの値を指定すると、コンパイラーはソースコードでgoog.require()ステートメントを探し、そのようなステートメントで要求されたクロージャーライブラリコードを提供します。」 、 https://developers.google.com/closure/compiler/docs/api-ref )リクエストの生の数を削減することはできますが、電話番号パーサー、フル機能のパーサーです。

私の質問には2つの答えがあります:

  1. すべてのGoogle JavaScriptベースライブラリをプルすることなくJavaScriptでlibphonenumberを使用する方法
  2. JavaScriptとJava実装の両方を備えた代替のスタンドアロン(数十個の依存関係がないなど)のファーストクラスの電話番号処理ライブラリ

ありとあらゆる提案を歓迎します。

43
S42

国際電話入力 プラグインに使用する カスタムビルド (現在220KB)があり、多くのヘルパー関数が公開されています。詳細については ソース を参照してください。

8
jackocnr

私のlibも使用できます。 https://github.com/Gilshallem/phoneparser

メソッドは1つしかありませんが、多くの方法を使用できます

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

JavaScriptのGoogle libphonenumberの2つの実装は、依存関係がなく、単一のファイルに実装されています。 Nathan Hammondのバージョンを問題なく使用しましたが、NPMにはありません。 Rui MarinhoのバージョンはNPMにあります。

1
Grokify

私はこれを理解するのに2日間費やしました。とりあえず、とにかく here からlibphonenumber-jsの縮小版をダウンロードできます

いつものように、所定の位置にドロップします

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

コーディングに忙しくなります!

<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