我正在尝试使用表达式^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$
验证电子邮件输入,但它会引发错误Range out of order in character class at RegExp
。我如何使用该表达式进行验证
ngOnInit() {
// created FormGroup using FormBuilder
this.courseForm = this.fb.group({
username: [null, [Validators.required, Validators.pattern('^[a-z0-9_-]{3,16}$')]],
email: [null, [Validators.required, Validators.pattern('^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$')]],
address: (null),
select: (null)
});
答案 0 :(得分:1)
错误是由于删除了一个\
并且您的角色类的一部分看起来像[_-.]
。这是一个无效的范围。
模式必须写为
'^([a-zA-Z0-9_.-]+)@([a-zA-Z0-9_.-]+)\\.([a-zA-Z]{2,5})$'
那是:
\
符号-
移到角色类的末尾以避免必须将其转义^
和$
,因为模式会自动包含^
和$
。答案 1 :(得分:1)
使用这样的模式,
Validators.pattern(/^[a-z0-9_-]{3,16}$/) // wrapping the pattern within '/' and '/' (treating as RegExps) instead of treating it as strings