gpt4 book ai didi

regex - 仅用于数字的 Angular 5 Validators.pattern 正则表达式

转载 作者:太空狗 更新时间:2023-10-29 19:36:22 26 4
gpt4 key购买 nike

我无法让 Angular 5 Validators.pattern 正常工作。我已经尝试了每一个通常应该工作的正则表达式,但它不工作。我读到 Validators.pattern 需要不同的格式,但我似乎找不到它...

任何关于 Validators.pattern 应该是什么的想法

(1) 只允许数字,正数和负数

(2) 只允许数字,正数和负数,可选择最多 2 位小数

有效的例子是:1个1.21.22-21-21.48

任何包含任何字母的内容都是无效的。

感谢您的帮助!

最佳答案

在尝试了这么多正则表达式之后,没有一个在 Safari 中起作用。所以这就是我所做的......

首先,我在创建表单控件时使用了正则表达式:

new FormControl({value: field.value}, [Validators.required, Validators.pattern(/^-?(0|[1-9]\d*)?$/)])

然后,在输入本身中我添加了一个(输入)事件:

<input matInput (input)="validateInput(field)" [placeholder]="field.label" type="number" [formControlName]="field.id" [id]="field.id">

这个函数看起来像这样:

validateInput(field) {

this.detailForm.patchValue({ [field.id]: this.detailForm.controls[field.id].value }); }

}

如果您在 Safari 中输入无效字符(例如 a-z),它不会将其存储在字段控件的值中。它只在那里存储有效值(数字)。所以我只是用存储的值修补值——如果它是有效的,用数字,就没问题;如果它与其他字符无效,则它将用空字符串替换输入。

在所有浏览器上都能完美运行。希望这对某人有帮助:)

关于regex - 仅用于数字的 Angular 5 Validators.pattern 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48996054/

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