北米の電話番号の場合、(999)999-9999は入力マスクに非常に適しています。
ただし、北アメリカ以外の番号を処理する良い例は見つかりません。桁数は変動する可能性があることを知っているので、桁のみに制限する以外に、どこかに良い例がありますか?
北米の電話番号の場合、(999)999-9999は入力マスクに非常に適しています。
ただし、北アメリカ以外の番号を処理する良い例は見つかりません。桁数は変動する可能性があることを知っているので、桁のみに制限する以外に、どこかに良い例がありますか?
次のような単純な RegEx を使用して国コードを推測できます。
^(?:(?:0(?:0|11)\s?)|+)([17]|2([07]|[1-689]\d)|3([0-469]|[578]\d)|4([013-9]|2\d)|5([1-8]|[09]\d)|6([0-6]|[789]\d)|8([12469]|[03578]\d)|9([0-58]|[679]\d))
に続く
(([\s\(\).-]{0,2}\d){4,13})$
国番号を抽出します。
国内番号の長さと有効性を検証するには、libphonenumber などが必要です。
上記の長い RegEx では、国コードの前に +、00、または 011 を使用でき、番号の句読点を選択することもできますが、これも削除する必要があります。
スペース、ダッシュ、スラッシュなどすべてを許可しますが、実際には数字とオプションの先頭の + 記号のみを考慮します。特定の長さの特定のブロックを想定するなど、他のすべては単にトラブルを求めているだけです。
簡単ではありません。理由の例については、このページをご覧ください。ドイツの電話番号だけを見ると、どこから電話をかけているかによって異なる形式があることに気付くでしょう。あなたはどちらを選びますか?これはドイツの電話番号のみです。それらは大陸ごと、国ごとに異なります。
「数値のみ」を使用するのがおそらく最も安全な方法です。