電話番号マッチングと検証の正規表現
国際形式、US形式、ヨーロッパ形式、E.164形式の電話番号マッチング用正規表現パターン。オプションの国番号、市外局番、各種セパレータに対応。
Common Patterns
詳細な説明
正規表現による電話番号マッチング
電話番号の形式は国やユーザーの好みによって大きく異なります。シンプルなものから包括的なものまでパターンを紹介します。
US電話番号
(?:\+?1[-.]?)?\(?\d{3}\)?[-.]?\d{3}[-.]?\d{4}
マッチ:
555-123-4567(555) 123-4567+1-555-123-45675551234567
国際形式 (E.164)
\+[1-9]\d{1,14}
E.164は国際電話番号の標準です:
+の後に国番号- 合計1〜15桁
- セパレータなし
柔軟な国際パターン
\+?\d{1,3}[-.\s]?\(?\d{1,4}\)?[-.\s]?\d{1,4}[-.\s]?\d{1,9}
これは各種セパレータ(ハイフン、ドット、スペース)と市外局番を囲むオプションの括弧を含む、ほとんどの一般的な形式に対応します。
名前付きグループによる抽出
(?<country>\+\d{1,3})?[-.\s]?\(?(?<area>\d{3})\)?[-.\s]?(?<prefix>\d{3})[-.\s]?(?<line>\d{4})
実用的な考慮事項
- 電話番号は正規表現だけで検証するのが非常に難しいことで知られています
- 国際形式は長さと構造が大幅に異なります
- 本番環境での検証には
libphonenumberのようなライブラリの使用を検討してください - 単純なフォーム検証では、数字と一般的なセパレータを受け付け、サーバーサイドで正規化します
- 保存前に数字以外の文字を除去:
phone.replace(/\D/g, "")
ユースケース
各種形式の電話番号を受け付けるお問い合わせフォームを構築する場合、テキストやドキュメントから電話番号を抽出する場合、またはデータベース保存のために電話番号入力を一貫した形式に正規化する場合。