【问题标题】:How to validate an email in Angular2?如何在 Angular2 中验证电子邮件?
【发布时间】:2018-09-16 05:34:24
【问题描述】:

我正在使用 FormGroupFormBuilderValidators 类来验证 Angular2 应用程序中的表单。

这就是我定义电子邮件和密码验证所需的验证规则的方式:-

export class LoginComponent implements OnInit {
    loginFormGroup:FormGroup;
    adminLoginmodel = new Admin('', '', '', 'Emailsss','Passwordsss');  

    constructor(
       private route: ActivatedRoute,
       private router: Router,
       private _adminLogin: AdminLoginService,
       fb: FormBuilder
    ){
         this.loginFormGroup = fb.group({
            'email' : [null, Validators.required],
            'password': [null, Validators.required]
         });
    }
}

如何验证给定字符串是否为有效电子邮件?

注意:

有人刚刚尝试将此问题标记为与此question 重复。

我的问题专门询问了 FormGroupFormBuilder 的实现,甚至在问题的开头就已经说明了这一点。这是一个很好的例子,展示了一些好的和有效的问题是如何被不公平地判断的。希望版主和其他所谓的“stackoverflow-community-builders”不会编辑此问题以删除此部分。

【问题讨论】:

标签: angular angular2-forms angular2-validators


【解决方案1】:
this.loginFormGroup = fb.group({
  'email' : [null, Validators.compose([Validators.required, Validators.email])],
  'password': [null, Validators.required]
});

将多个验证器组合成一个函数,该函数返回单个错误映射的联合。

【讨论】:

  • 太棒了!这是我需要更多的实际答案。它显示了我如何使用多个验证规则!我正要发布一个关于如何在单个 上具有多个验证规则的问题。 Validators.compose 可以解决问题。非常感谢。此外,Validators.email 还检查电子邮件是否有效。因此,我们不需要 preg 匹配模式。
  • 很高兴我能帮上忙 :)
  • :)。我正在发布另一个问题。希望你也能在这方面帮助我。 :)
  • 这是另一个问题。 stackoverflow.com/questions/49689689/…
【解决方案2】:

您必须使用带有正则表达式的模式验证器:

this.loginFormGroup = fb.group({
    'email' : [null, Validators.pattern('^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$')],
    'password': [null, Validators.required]
});

【讨论】:

  • 使用您的脚本未将tuhindey@gmail.com 之类的电子邮件检测为有效邮件。
  • 构建自己的正则表达式,这是验证模式的示例
猜你喜欢
  • 2017-07-11
  • 2011-08-16
  • 2011-04-09
  • 2016-07-15
  • 2015-06-09
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 2011-08-21
相关资源
最近更新 更多