web-dev-qa-db-ja.com

国際電話をサポートするときに電話番号をフォーマットするための好ましい方法は何ですか?

多くの国では数値のフォーマットが異なり、常に10桁であるとは限らないため、国際番号をサポートする必要があるWebアプリケーションがあります。それらを表示するときに数値をフォーマットするための最良の方法は何ですか?

たとえば、米国は数値を次のようにフォーマットします:(xxx)xxx-xxxx

フランス:0 xxx xxx xxx

英国:(01xxxx)xxxxx

さまざまな国の電話番号を表示するためのベストプラクティスは何ですか?それらは米国の方法で表示されるべきですか?原産国が表示する方法で表示する必要がありますか?または、ユーザーがテキストボックス内で自分で番号をフォーマットできるようにする必要がありますか?

2
Benjamin

電話番号を1つの文字列として収集する

結局のところ、電話番号は文字や数字の文字列にすぎないため、通常、ユーザーに電話番号の入力を求める場合は、1つのテキスト入力を使用する必要があります。

次に、アプリケーションはユーザー入力を検証し、必要に応じて説明を求めることができます。

ユーザーが入力した電話番号を解釈する例

enter image description here


ユーザー入力として電話番号を表示する

入力したのと同じ方法で電話番号を表示すると、ユーザーは自分で電話番号を編集できます。

1
DaveAlger

2つの一般的な選択肢:

  1. 一般的な(同じ)形式を使用して国際番号を表示する場合、United Nations ITU E.164 standardはそれを行うには良い方法です。

    enter image description here

  2. 少しコーディングしたい場合は、その後、ユーザーのロケール形式で数値を表示すると読みやすくなります。

    • Googleは、広範囲にわたる使用/テスト済みの優れたライブラリ libphonenumber -を提供しています。これにより、電話番号をさまざまな形式で解析および検証し、E.164形式またはロケール形式で出力できます。

    • ライブラリは多くの異なる言語/環境に移植されています。リンクをクリックしてください。

3
tohster