Angular Form 精确 10 个字母数字字母模式验证

And*_*ili 1 angular-validation angular angular-reactive-forms

我对反应式表单字段验证的这个特定用例有以下问题。

目前我只设置了这个规则:

this.projectForm = this.fb.group({
  .....................................................................................,
  .....................................................................................,
  .....................................................................................,
  CIG: [null, [Validators.required, Validators.minLength(10),Validators.maxLength(10)]],
Run Code Online (Sandbox Code Playgroud)

目前我正在检查插入到我的CIG表单字段中的值是否正好有 10 个字符作为长度。

我的问题是我还必须检查这是一个字母数字字符串(由 10 个字符组成)。

所以这样的事情是允许的:ABCED12345但不允许这样的事情:ABCD-12345

如何使用Validators实现这种行为?我需要使用 REGEX 或类似的东西吗?

Kam*_*tti 7

您可以使用 Angular Reactive Form Pattern Validators来实现这一点。

validPattern = "^[a-zA-Z0-9]{10}$"; // alphanumeric exact 10 letters
this.projectForm = this.fb.group({
 ...
 CIG: [null, [Validators.required, Validators.pattern(this.validPattern)],
Run Code Online (Sandbox Code Playgroud)

希望这能解决您的问题。