角度电子邮件验证模式以严格执行该模式

时间:2020-05-16 09:13:00

标签: angular forms

我正在尝试使用一种模式来验证我通过表单控件从用户那里输入的电子邮件。

我使用以下内容来验证用户输入的电子邮件ID。

'email':[“,[Validators.required,Validators.pattern(” ^ [a-z0-9 ._%+-] + @ [a-z0-9 .-] +。[az] {2,4} $“)]]

但是,当输入“ abc @ abcd”时,该表格将生效并允许用户提交。我可以看到这里没有遵守该模式。如何根据定义的模式强制对电子邮件进行验证?

2 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式来正确验证电子邮件。

正则表达式:

/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/

如果您使用Angular Reactive表单以进行验证。正则表达式将如下添加。

email: [
    null,
    Validators.compose([
      Validators.required,
      Validators.pattern(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/),
    ]),
  ]

这些是上述正则表达式的失败情况。

  • abc
  • abc @ cde
  • abc@cde.f

成功方案

  • abc@cde.fg

答案 1 :(得分:0)

电子邮件正则表达式模式

"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"

OR

new RegExp("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*")