確立されたプロジェクトに 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つの答えがあります:
ありとあらゆる提案を歓迎します。
私のlibも使用できます。 https://github.com/Gilshallem/phoneparser
メソッドは1つしかありませんが、多くの方法を使用できます
parsePhone("12025550104");
result: { countryCode:1, areaCode:202, number:5550104, countryISOCode:"US" }
JavaScriptのGoogle libphonenumberの2つの実装は、依存関係がなく、単一のファイルに実装されています。 Nathan Hammondのバージョンを問題なく使用しましたが、NPMにはありません。 Rui MarinhoのバージョンはNPMにあります。
私はこれを理解するのに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>