Angular 中内置验证器有哪一些?

发布于 2024-12-24 04:00:04 字数 3649 浏览 0 评论 0

Angular 中提供了一些常用的内置验证器,方便在表单中进行常见的数据验证。这些验证器可以通过 Reactive FormsTemplate-driven Forms 使用。以下是 Angular 中内置的一些常见验证器:

1. 基本验证器列表

验证器描述
required检查控件是否有值,如果为空则验证失败。
requiredTrue检查控件的值是否为 true ,通常用于复选框的验证。
minLength检查控件的值的长度是否大于等于指定的最小长度。
maxLength检查控件的值的长度是否小于等于指定的最大长度。
min检查控件的数值是否大于等于指定的最小值。
max检查控件的数值是否小于等于指定的最大值。
email检查控件的值是否是有效的电子邮件地址格式。
pattern使用正则表达式验证控件的值是否符合指定的模式。

2. 如何在 Reactive Forms 中使用内置验证器

在使用 Reactive Forms 时,可以在表单控件的初始化中添加这些内置验证器。例如:

import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';

@Component({
  selector: 'app-example-form',
  template: `
    <form [formGroup]="form">
      <div>
        <label for="email">Email:</label>
        <input id="email" formControlName="email" />
        <div *ngIf="form.get('email')?.errors?.['email']">Invalid email format.</div>
      </div>

      <div>
        <label for="age">Age:</label>
        <input id="age" type="number" formControlName="age" />
        <div *ngIf="form.get('age')?.errors?.['min']">Age must be at least 18.</div>
      </div>

      <button [disabled]="form.invalid">Submit</button>
    </form>
  `
})
export class ExampleFormComponent {
  form: FormGroup;

  constructor(private fb: FormBuilder) {
    this.form = this.fb.group({
      email: ['', [Validators.required, Validators.email]],
      age: ['', [Validators.required, Validators.min(18)]],
    });
  }
}

在这个例子中,我们使用了 Validators.requiredValidators.emailValidators.min 来验证电子邮件格式和年龄。

3. 在 Template-driven Forms 中使用内置验证器

在使用模板驱动表单时,可以通过 HTML 属性直接应用这些内置验证器:

<form #form="ngForm">
  <div>
    <label for="email">Email:</label>
    <input id="email" name="email" ngModel required email />
    <div *ngIf="form.controls['email']?.invalid && form.controls['email']?.touched">
      Invalid email format.
    </div>
  </div>

  <div>
    <label for="age">Age:</label>
    <input id="age" type="number" name="age" ngModel required min="18" />
    <div *ngIf="form.controls['age']?.invalid && form.controls['age']?.touched">
      Age must be at least 18.
    </div>
  </div>

  <button [disabled]="form.invalid">Submit</button>
</form>

在模板驱动表单中,可以直接使用 HTML 的属性来实现验证,例如 requiredminemail 等。

小结

Angular 中的内置验证器涵盖了大部分常见的验证需求。你可以轻松地在 Reactive FormsTemplate-driven Forms 中使用这些验证器,具体包括:

  • 必填验证requiredrequiredTrue
  • 长度验证minLengthmaxLength
  • 数值范围验证minmax
  • 格式验证emailpattern

这些验证器在表单中提供了强大的基础数据验证能力。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

じее

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

亚希

文章 0 评论 0

cyp

文章 0 评论 0

北漠

文章 0 评论 0

11223456

文章 0 评论 0

坠似风落

文章 0 评论 0

游魂

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文