0

正規表現なしでコンソールアプリの電話番号を制限できますか?私はこのコードを持っていますが、00で始まる国際番号では機能しません。

   static public bool CheckPhoneNumb (string phoneNumber)
    {
        long lphoneNumber;
        return ((phoneNumber.Length >= 9) && phoneNumber.Length <= 15) &&
                (long.TryParse (phoneNumber, out lphoneNumber))) ? true : false;
    }

Thnks。

4

4 に答える 4

5

世界中の通話をサポートする必要がある場合、正規表現でサポートするのは困難です。

Googleの電話番号検証ライブラリをお勧めします。

世界のすべての国/地域の電話番号の解析/フォーマット/検証。

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

ページの下部にリンクされているC#ポートがあります。

于 2013-03-26T16:58:09.890 に答える
1

国際電話番号は00で始まりません。00の部分は、実際の国際番号(00に続く)のダイヤルを開始するために世界の一部で使用するコードです。その番号は、ダイヤル元の場所から変わります。たとえば、米国では011です。ヨーロッパでは00です。日本ではコードが異なり、他にもいくつかあります。

はい、正規表現なしで制限することはできますが、おそらく簡単に制限できます。表示する相手によって異なるため、国際アクセスコードを保存しないことを強くお勧めします。 。

于 2013-03-26T17:00:37.213 に答える
1

あなたが求める答えは、あなたが思っているよりもかなり複雑です。

多くの場合、プレフィックスが追加/削除されるため、番号自体は発信元と宛先のロケールによって異なります。

どんな電話番号?NANP(北米番号計画)または他のどこか?

米国、カナダ、メキシコ、カリブ海をカバーするNANPについては、http://www.nanpa.com/で説明されています。世界中で実施されている番号計画については、http: //www.wtng.info/にあるWorld TelephoneNumberingGuideから始めることをお勧めします。

于 2013-03-26T17:09:11.327 に答える
-1
return ((phoneNumber.Length >= 9) && phoneNumber.Length <= 15) && phoneNumber.All(char.IsNumber);
于 2013-03-26T16:58:14.403 に答える