6

Google libphonenumber 解析ライブラリの C# ポートについて知っています: http://code.google.com/p/libphonenumber/

私が必要としているのは、電話番号の文字列を取得し、対応する部分、国コード、市外局番、プレフィックス、番号、および内線番号に分割することです。

このライブラリを使用してそれを行うことはできますか? もしそうなら、誰かがC#で簡単なテストを投稿してそれを行うことができますか? ドキュメントでそれを行う方法がわかりません。

ところで、それらは国内でも国際でもかまいません。

4

2 に答える 2

7

libphonenumber ライブラリは、番号を解析し、それが国内および国際番号の既知のパターンと一致することを検証します。任意の番号の国コードと、国内または国際の正しいダイヤル パターンが表示されます。

それ以上の構成要素に解析することはありません。市外局番、プレフィックス、番号、内線番号の解析はありません。

これはオープンソースなので、これを行う必要がある場合は、出発点としては良いかもしれませんが、大変な作業になると確信しています。

于 2012-09-22T03:05:38.283 に答える
3

Patrick Mezard は親切にもライブラリを C# に移植してくれました:

https://bitbucket.org/pmezard/libphonenumber-csharp/wiki/Home

使用方法については、公式 Web サイトを参照してください。

http://code.google.com/p/libphonenumber/

Java コードは C# に直接変換できます。例えば:

ジャワ

String swissNumberStr = "044 668 18 00"
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
  PhoneNumber swissNumberProto = phoneUtil.parse(swissNumberStr, "CH");
} catch (NumberParseException e) {
  System.err.println("NumberParseException was thrown: " + e.toString());
}

C#

String swissNumberStr = "044 668 18 00";
PhoneNumberUtil phoneUtil = PhoneNumberUtil.GetInstance();
try
{
    PhoneNumber swissNumberProto = phoneUtil.Parse(swissNumberStr, "CH");
    Console.WriteLine(swissNumberProto.CountryCode);
}
catch (NumberParseException e)
{
    Console.WriteLine("NumberParseException was thrown: " + e.ToString());
}

幸運を。

アップデート:

その他の例: http://code.google.com/p/libphonenumber/source/browse/#svn/trunk/java/libphonenumber/test/com/google/i18n/phonenumbers

必要なものが見つからない場合は、自分で実装できると思います。

于 2012-09-22T03:09:34.833 に答える