在反应形式上使用正则表达式进行 Angular 7 电子邮件验证

Sel*_*mud 4 regex forms validation angular

在 Angular 上,我尝试使用以下正则表达式验证电子邮件 -

^(([^<>()[\]\\.,;:\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,}))$
Run Code Online (Sandbox Code Playgroud)

如下图——

createGroupForm() {
    this.childGroupForm = new FormGroup({
        'groupName': new FormControl(null, Validators.compose([
            Validators.required
        ])),
        'groupEmail': new FormControl(null, Validators.compose([
            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,}))$')
        ]))
    });
}
Run Code Online (Sandbox Code Playgroud)

但看起来它不起作用。它总是显示“电子邮件无效。”,即使它是有效的。

Arm*_*144 8

我在这里做了一个例子:https : //stackblitz.com/edit/angular-pgc7st

所以在验证器中它应该是这样的:

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,}))$/)
Run Code Online (Sandbox Code Playgroud)

如果您在代码中看到您正在输入一个字符串作为 reexp。所以删除字符串字符('')它可以工作。检查示例。