2017-11-14 9 views
0

私は正規表現を使用しています。私は 'foobar'のような特定の単語を持つドメインを制限したい。私はそのようなfoobar.comとして、特定のドメインをテストするための正規表現がありますが、私もカバーしたい:電子メールアドレスの制限された単語を正しくテストできない正規表現

  • internal.foobar.com
  • foobarcorp.com
  • randomdomainwithfoobarinit.co.uk
  • foobar.net
  • その他、各種

これまでのところ、私の正規表現は、文字がfoobarそうの前に存在する場合を除き、正しくほとんどすべてをカバーは捕まえられませんが、foobarcorp.comとなります。 @の記号の後にw+.*の組み合わせを試してみました。右のコンボを見つけるのは幸運でした。何か案は?私はスタックオーバーフローを回避しようとしましたが、同様の質問のほとんどは、ドメインをカバーしようとしている特定の既知のドメインを制限することをカバーしています。

コード:たぶん

var regex = /\[email protected]((?!foobar).)*\../i; 
ngModel.$setValidity('restrict-email', regex.test(value)); 

答えて

1

あなたはこの試みることができます:私は `オプションでダッシュのためのサポートを追加する必要がありました

var regex = /\[email protected](\w+\.?)?foobar(\w+)?(\.\w+)+/i; 
 

 
console.log(regex.test('[email protected]')); 
 
console.log(regex.test('[email protected]')); 
 
console.log(regex.test('[email protected]')); 
 
console.log(regex.test('[email protected]')); 
 
console.log(regex.test('[email protected]'));

+0

を( - )'前後のfoobarに、これは私に約束の地を得ましたか。 、ありがとう! –

+0

うれしいよ:) – YouneL

0

のようなもの:

/.*(foobar).*/i

私はRegExr上でそれをテストし、それはあなたが言及したすべてのケースにマッチしました。

ちょうどあなたがそうのように自分でドメインを一覧表示することができ、より具体的には optionalパラメータに ?

を逃す

関連する問題