[英]Angular Validator.pattern() does not give same results as online regex engines
我有一个表单组。 以及用于验证名称的正则表达式。 名称输入字段的约束是
在线检查时,我的正则表达式( ^[a-zA-Z][a-zA-Z0-9]*$
)工作正常。 但是对于 angular,formControl 显示对所有字符串都有效。
谁能解释为什么 angular Validator.pattern()和js engine的结果之间存在这种差异。
我尝试了以下但无济于事(所有都是来自stackoverflow答案的建议):
Validators.pattern(/^[a-zA-Z][a-zA-Z0-9]*$/)
Validators.pattern('[a-zA-Z][a-zA-Z0-9]*')
const nameRegex='^[a-zA-Z][a-zA-Z0-9]*$'
this.signupForm = this.formBuilder.group({
name: ['', Validators.required, Validators.pattern(nameRegex)],
email: ['', [Validators.required, Validators.pattern(emailRegex)]],
password: ['', Validators.compose([Validators.required, Validators.minLength(6)])],
c_password: ['', Validators.compose([Validators.required, Validators.minLength(6)])]
您在FormGroup
中犯了一个错误。 name
表单控件验证器缺少括号。
name: ['', [Validators.required, Validators.pattern(nameRegex)]],
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.