2017-09-26 3 views
0

^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$の式を使用して入力された電子メールの入力を検証しようとしていますが、エラーRange out of order in character class at RegExpがスローされます。私はその式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) 
    }); 

答えて

1

を使用して検証するにはどうすればよいのエラーは、単一\が除去されたことに起因していると、あなたの文字クラスの一部は[_-.]のように見えます。無効な範囲です。

パターンが

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

として記述する必要があります。すなわち:

  • ダブルそれをエスケープすることを避けるために文字クラスの最後に\シンボル
  • に移動-を逃れる
  • 注:^$のパターンはwr ^$が自動的に付いています。このよう
+0

は、なぜあなたはそれを行う必要がありません。詳細はどこで知ることができますか? – SONGSTER

1

使用パターン、

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