gpt4 book ai didi

Angular 7 : Formvalidation, Validators.pattern 不工作

转载 作者:太空狗 更新时间:2023-10-29 18:09:26 25 4
gpt4 key购买 nike

我只需要对匹配的整数进行验证。因此,我将 pattern 验证器与正则表达式一起使用(见下文)。此外,该字段不应为空,因此我添加了 required 验证器。

但是永远不会触发pattern 错误。我阅读了 Angular 文档并查看了 pattern 的源代码,但它对我来说仍然毫无意义。此外,我已经阅读了几乎所有与该主题相关的关于 stackoverflow 的问题。但我仍然无法弄清楚为什么该模式不起作用。

也许你们中的一些人可以帮助我,谢谢!

这是我的代码 component.ts:

// definition of the formcontrol
hours = new FormControl('', [
Validators.required,
Validators.pattern('^[0-9]*$'),
])

// for debugging
log() {
console.log('required: ', this.hours.hasError('required'));
console.log('pattern: ', this.hours.hasError('pattern'));
console.log('Erros: ', this.hours.errors);
}

模板:

<mat-form-field>
<input matInput [formControl]="hours" (input)="log()"
placeholder="Anzahl der ausbezahlten Überstunden" type="number">
<mat-error *ngIf="hours.hasError('required') && !hours.hasError('pattern')">
Anzahl der Überstunden fehlt!
</mat-error>
<mat-error *ngIf="!hours.hasError('required') && hours.hasError('pattern')">
Anzahl muss eine Ganzzahl sein!
</mat-error>
</mat-form-field>

示例inputValue="":

required: true
pattern: false
Error: Object { required: true }

inputValue="1":

required:  false
pattern: false
Error: null

inputValue="a":

required:  true
pattern: false
Error: Object { required: true }

最佳答案

它不适用于 type="number",如果您将其更改为 type="text"它将起作用

关于Angular 7 : Formvalidation, Validators.pattern 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54881597/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com