メールアドレスのフォーマット検証 — 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 のような標準的なメールアドレスを検証できます。ただし、実際のメール到達性は保証されません。
ユースケース
ユーザー登録フォーム、連絡先情報、通知設定などでメールアドレスのフォーマットを検証する際に使用します。