Angular 端口校验:使用 Validators.pattern 验证输入

可以使用 Angular 内置的 Validators.pattern 方法来校验输入内容是否是端口,如下所示:

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

@Component({
  selector: 'app-port-validation',
  template: `
    <form [formGroup]="portForm">
      <input type="text" formControlName="port">
      <div *ngIf="port.hasError('pattern')">
        Please enter a valid port number (1-65535).
      </div>
    </form>
  `,
})
export class PortValidationComponent {
  portForm = new FormGroup({
    port: new FormControl('', [Validators.required, Validators.pattern('^[1-9]\d{0,3}$|^[1-5]\d{4}$|^[6][0-4]\d{3}$|^65[0-4]\d{2}$|^655[0-2]\d$|^6553[0-5]$')]),
  });

  get port() {
    return this.portForm.get('port');
  }
}

以上代码中,我们使用了 Validators 中的 pattern 方法,并传入一个正则表达式,该正则表达式用于匹配输入内容是否是端口。如果输入内容不是端口,则会显示错误信息。

正则表达式解释:

该正则表达式匹配 1 到 65535 之间的整数。它使用了一系列的或运算符 (|) 来匹配不同的数字范围,例如:

  • ^[1-9]\d{0,3}$: 匹配 1 到 999 之间的整数。
  • ^[1-5]\d{4}$: 匹配 1000 到 5999 之间的整数。
  • ^[6][0-4]\d{3}$: 匹配 6000 到 6499 之间的整数。
  • ^65[0-4]\d{2}$: 匹配 6500 到 6549 之间的整数。
  • ^655[0-2]\d$: 匹配 6550 到 6552 之间的整数。
  • ^6553[0-5]$: 匹配 65530 到 65535 之间的整数。

总结

通过使用 Validators.pattern 方法和一个匹配端口范围的正则表达式,我们可以有效地校验输入内容是否为有效的端口号,提高应用程序的可靠性和安全性。

Angular 端口校验:使用 Validators.pattern 验证输入

原文地址: https://www.cveoy.top/t/topic/ofUm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录