0

次の式を使用して電子メールを検証しています。

^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+(?:[a-zA-Z]{2}|com|COM|CoM|cOM|coM|COm|edu|org|net|gov|biz|info|name|aero|biz|info|jobs|museum)\b

ただし、以下のような無効なメールを入力することはできます...

mynameis@domain.co,uk

co と uk の間のコンマを許可したくありません。

助言がありますか?

4

1 に答える 1

2

コンマをどこにも入れたくない場合は、先読みを試みることができます。 ^(.(?!,))*$ これでどこかにカンマがあるとマッチしなくなります。もちろん、開始アンカーと終了アンカーなしで、これを既存の式に配置する必要があります。このような正規表現をテストするには、 Regexpalをお勧めします。

さらに、電子メール アドレスから 2 つのピリオドを除外することもできます。私が使う:

^(?!.*\.{2})[ ]*[\w]+[\w\.]*[\w]*@[\w]+\.[a-zA-Z]+[ ]*私のニーズのために。

\wアンダースコアが原因で[A-Za-z0-9_]どちらが奇妙であるかが許可されるようになりましたが、電子メールアドレスでアンダースコアが許可されていることは確かです。これにより、電子メール アドレスでピリオドが 2 つ使用されることや、最初または最後の文字にピリオドを使用することが禁止されます。これは違法です。

于 2012-06-27T16:02:54.817 に答える