我正在尝试验证使用表达式^([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)
});
错误是由于删除了单个,并且角色类的一部分看起来像
[_-.]
。这是一个无效的范围。
该图案必须写为
'^([a-zA-Z0-9_.-]+)@([a-zA-Z0-9_.-]+)\.([a-zA-Z]{2,5})$'
是:
- 双重逃脱
符号
- 将
-
移至角色类的末尾,以免逃脱 - 注意:您也可以省略
^
和$
,因为该模式被^
和$
自动包裹。
使用类似的模式,
Validators.pattern(/^[a-z0-9_-]{3,16}$/) // wrapping the pattern within '/' and '/' (treating as RegExps) instead of treating it as strings