-
テンプレート駆動フォームの場合:
- テンプレート内で
<input>
要素を使用し、email
属性を指定します。 ngForm
ディレクティブを使用してフォームを作成します。email
属性によって自動的にメールアドレスのバリデーションが行われます。- フォームのバリデーション状態に基づいてエラーメッセージを表示します。
<form #myForm="ngForm"> <input type="email" name="email" ngModel required> <div *ngIf="myForm.controls.email.invalid && (myForm.controls.email.dirty || myForm.controls.email.touched)"> <div *ngIf="myForm.controls.email.errors.required">メールアドレスを入力してください。</div> <div *ngIf="myForm.controls.email.errors.email">有効なメールアドレスを入力してください。</div> </div> </form>
- テンプレート内で
-
リアクティブフォームの場合:
- コンポーネントクラスで
FormBuilder
をインポートし、フォームを作成します。 Validators.email
を使用してメールアドレスのバリデーションを追加します。- フォームコントロールのバリデーション状態に基づいてエラーメッセージを表示します。
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; export class MyComponent { myForm: FormGroup; constructor(private formBuilder: FormBuilder) { this.myForm = this.formBuilder.group({ email: ['', [Validators.required, Validators.email]] }); } get email() { return this.myForm.get('email'); } }
- コンポーネントクラスで
-
カスタムバリデータを使用する場合:
Validators.pattern
を使用して独自のパターンバリデータを作成します。- メールアドレスの正規表現パターンを指定します。
- バリデーションエラーが発生した場合にエラーメッセージを表示します。
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; export class MyComponent { myForm: FormGroup; constructor(private formBuilder: FormBuilder) { this.myForm = this.formBuilder.group({ email: ['', [Validators.required, Validators.pattern('^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$')]] }); } get email() { return this.myForm.get('email'); } }
これらはAngularでメールアドレスのバリデーションとエラーハンドリングを実装するための一般的な方法です。必要に応じて、さらにカスタマイズすることもできます。