提问人:f1vlad 提问时间:9/11/2023 更新时间:9/11/2023 访问量:35
Angular 表单 Validators.pattern 不适用于匹配 2 个变体
Angular form Validators.pattern does not work for matching 2 variants
问:
我有一个独特的情况,我必须验证日期时间格式或空字符串。其中任何一个都应该是有效的输入。但是,例如,格式错误或不完整的日期时间应该无法通过验证。
myForm = this.form.group({
...
ts: ['', [Validators.required, Validators.pattern('/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}|^(?=\s*$)$/')]],
});
模板:
<input
type="datetime-local"
class="form-control"
formControlName="ts">
我在 https://regex101.com/ 中检查了我的正则表达式,它与空输入或正确的日期时间格式匹配,例如2023-09-14T17:17
但是,当我在我的应用程序中将该字段留空时,它仍然显示验证错误。
谁能推荐我可能遗漏的其他东西?
先谢谢你!
答:
0赞
Matthieu Riegler
9/11/2023
#1
这是在空字符串上重新出现错误,而不是您的.Validators.required
Validators.pattern
0赞
Priyam3341278
9/11/2023
#2
如果你的正则表达式与空字符串匹配,这是可以接受的,那么你可以删除 .
你可以这样写:Validators.required
myForm = this.form.group({
...
ts: ['', [Validators.pattern('/^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}|^(?=\s*$)$/')]],
});
希望这有帮助!
评论
{{ myForm.get('ts').errors | json }}