メールアドレスのフォーマット検証 — JSON Schema format

JSON Schemaの format キーワードを使用してメールアドレスの形式を検証する方法を解説します。

String Constraints

JSON Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 254
    },
    "backupEmail": {
      "type": "string",
      "format": "email"
    }
  },
  "required": ["email"]
}

Test Data

{
  "email": "alice@example.com",
  "backupEmail": "alice.backup+tag@mail.example.org"
}

詳細な説明

JSON Schemaの format: "email" キーワードは、文字列がメールアドレスの形式に準拠しているかを検証します。このフォーマットはRFC 5321に基づいています。

重要な注意点:

  • format キーワードはデフォルトではアノテーション(注釈)としてのみ機能し、バリデーションを強制しないバリデータもあります。
  • 厳密なバリデーションを行うには、バリデータ側で format バリデーションを有効にする設定が必要です。
  • format だけでは全てのエッジケースをカバーできないため、pattern と併用することが推奨されます。

例えば、{ "type": "string", "format": "email" } と定義すれば、user@example.com のような標準的なメールアドレスを検証できます。ただし、実際のメール到達性は保証されません。

ユースケース

ユーザー登録フォーム、連絡先情報、通知設定などでメールアドレスのフォーマットを検証する際に使用します。

試してみる — JSON Schema Validator

フルツールを開く