在REGEXP的字符类中范围内



我正在尝试验证使用表达式^([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

相关内容

最新更新