RegExp处字符类中的范围出错

RegExp处字符类中的范围出错,regex,angular,angular2-forms,Regex,Angular,Angular2 Forms,我试图使用表达式^([a-zA-Z0-9\-\.]+)@([a-zA-Z0-9\-\.]+)\.([a-zA-Z]{2,5})$验证电子邮件输入字段,但它在RegExp的字符类中抛出了错误范围。如何使用该表达式进行验证 ngOnInit() { // created FormGroup using FormBuilder this.courseForm = this.fb.group({ username: [null, [Validators.required,

我试图使用表达式
^([a-zA-Z0-9\-\.]+)@([a-zA-Z0-9\-\.]+)\.([a-zA-Z]{2,5})$
验证电子邮件输入字段,但它在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)
    });

该错误是由于单个
\
被删除,并且角色类的一部分看起来像
[\u-.]
。这是一个无效的范围

模式必须写为

'^([a-zA-Z0-9_.-]+)@([a-zA-Z0-9_.-]+)\\.([a-zA-Z]{2,5})$'
即:

  • 双重转义
    \
    符号
  • -
    移动到字符类的末尾,以避免转义字符类
  • 注意:当模式自动用
    ^
    $
    包装时,您也可以省略
    ^
    $

该错误是由于单个
\
被删除,并且角色类的一部分看起来像
[\u-.]
。这是一个无效的范围

模式必须写为

'^([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
      

      使用这样的模式

      Validators.pattern(/^[a-z0-9_-]{3,16}$/) // wrapping the pattern within '/' and '/' (treating as RegExps) instead of treating it as strings