動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

パターン2:電話番号検証—国内+国際対応

出典: C# 正規表現の業務系基本 — メール / 電話 / 郵便番号 / 全角半角の入力検証5パターンパターン2:電話番号検証—国内+国際対応

パターン2:電話番号検証—国内+国際対応 (csharp)#f2eebc57a171
using System.Text.RegularExpressions;
 
public static class PhoneValidator
{
    // ✅国内電話番号(先頭0 +ハイフン任意)
    //例: 03-1234-5678 / 090-1234-5678 / 0312345678
    private static readonly Regex DomesticPhoneRegex = new Regex(
        @"^0\d{1,4}-?\d{1,4}-?\d{4}$",
        RegexOptions.Compiled);
 
    // ✅国際対応版(+記号+国番号+国内番号)
    //例: +81-3-1234-5678 / 03-1234-5678 / +1 555 123 4567
    private static readonly Regex InternationalPhoneRegex = new Regex(
        @"^(\+?\d{1,4}[-\s]?)?\d{2,5}[-\s]?\d{2,5}[-\s]?\d{2,5}$",
        RegexOptions.Compiled);
 
    public static bool IsValidDomestic(string phone)
    {
        if (string.IsNullOrWhiteSpace(phone))return false;
        return DomesticPhoneRegex.IsMatch(phone);
    }
 
    public static bool IsValidInternational(string phone)
    {
        if (string.IsNullOrWhiteSpace(phone))return false;
        return InternationalPhoneRegex.IsMatch(phone);
    }
}
 
//使い方
class Program
{
    static void Main()
    {
        //国内
        Console.WriteLine(PhoneValidator.IsValidDomestic("03-1234-5678"));    // True
        Console.WriteLine(PhoneValidator.IsValidDomestic("0312345678"));      // True
        Console.WriteLine(PhoneValidator.IsValidDomestic("090-1234-5678"));   // True
        Console.WriteLine(PhoneValidator.IsValidDomestic("+81-3-1234-5678")); // False
 
        //国際
        Console.WriteLine(PhoneValidator.IsValidInternational("+81-3-1234-5678")); // True
        Console.WriteLine(PhoneValidator.IsValidInternational("+1 555 123 4567"));  // True
    }
}
▸ 実行ボタンで結果を表示
  • id: #f2eebc57a171
  • lines: 45
  • extracted: 2026-06-10
  • captured: 2026-06-04

Source収録記事

この snippet は記事の「パターン2:電話番号検証—国内+国際対応」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

5
図鑑トップ