1. ホーム
  2. regex

[解決済み] 国際電話番号にマッチする正規表現を教えてください。

2022-05-13 13:34:18

質問

電話番号にダイヤルする前に、その電話番号が有効かどうかを判断する必要があります。電話は世界のどこにでもかけることができます。

有効な国際電話番号にマッチする正規表現は何でしょうか。

どのように解決するのですか?

\+(9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|
2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|
4[987654310]|3[9643210]|2[70]|7|1)\d{1,14}$

は、一般的な国際電話番号のマッチングに適した形式です。米国の固定電話中心の国際アクセスコード011を、標準の国際アクセスコード識別子である「+」に置き換え、必須としました。また、国番号の最小値を1桁以上に変更しました。

なお、この形式で携帯電話のアドレス帳に番号を入力すると、どこを旅行しても、アドレス帳に登録されている番号にうまく電話をかけることができます。固定電話の場合は、プラスを発信元の国の国際アクセス コードに置き換えてください。

具体的には、国の番号プランでは許可されない場所にゼロと1を使用したり、一部の国 (米国など) の国の番号プランより長い番号を使用したりできます。