1

正規表現でメールアドレスを検証しています。次の条件でテストしたいと思います。

名前は最低 3 文字、記号 @、ドメインの最初の部分は最低 3 文字、ドット、繰り返し文字は 3 文字以内

この正規表現を試してみましたが、最後のものを除くすべてのケースでうまく機能しています。

/^[A-Za-z0-9._%+-]{3,}\@[A-Za-z0-9.-]{3,}\.[A-Za-z]{2,4}$/

ドット(。)の後の繰り返し文字(任意の文字)をチェックしていません

よくない: test@test. ccccom、 test@test.coooom

OK : test@test.com

RE の最後の部分の何が問題なのかわかりません。

任意の入力をいただければ幸いです。

4

2 に答える 2

2

次の正規表現を使用できます。

^(?!.*([A-Za-z0-9])\1{3})[A-Za-z0-9._%+-]{3,}\@[A-Za-z0-9-]{3,}\.[A-Za-z]{2,4}$

行われた変更:

(?!.*([A-Za-z0-9])\1{3})- これは、文字が 3 回以上連続して繰り返されないようにする否定的な先読みです。

.正規表現の残りの部分は、2 番目の文字クラスから が削除されていることを除いて、そのままです。

正規表現のデモ


最後の の後の文字の繰り返しを許可しない場合は.、代わりに次を使用できます。

^[A-Za-z0-9._%+-]{3,}\@[A-Za-z0-9-]{3,}\.(?!([A-Za-z0-9])\1{3})[A-Za-z]{2,4}$

正規表現のデモ

于 2014-09-10T13:21:46.993 に答える
0

これにより、最後のドットの後に文字を 3 つ以上繰り返すことはできません。

^[A-Za-z0-9._%+-]{3,}\@[A-Za-z0-9.-]{3,}\.(?:(?!(.)\1{3})[a-zA-Z]){2,4}$

デモ

于 2014-09-10T13:36:42.587 に答える