繁体   English   中英

Angular Validator.pattern() 给出的结果与在线正则表达式引擎不同

[英]Angular Validator.pattern() does not give same results as online regex engines

我有一个表单组。 以及用于验证名称的正则表达式。 名称输入字段的约束是

  • 必需的。
  • 是字母数字。
  • 以字母开头。
  • 不包含任何特殊字符。

在线检查时,我的正则表达式( ^[a-zA-Z][a-zA-Z0-9]*$ )工作正常。 使用 regex101.com 进行正则表达式检查 但是对于 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM