Регулярное выражение для электронной почты для проверки повторяющихся символов

Я проверяю адрес электронной почты с помощью регулярного выражения. Я хотел бы проверить следующие условия:

минимум 3 символа в имени, символ @, минимум 3 символа в первой части домена, точка, не более 3 повторяющихся символов

Я попробовал это регулярное выражение, и оно отлично работает во всех случаях, кроме последнего.

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

Он не проверяет повторяющийся символ (любой символ) после точки (.)

Не в порядке: test@test.ccccom, [email protected]

Хорошо: [email protected]

Не знаю, что не так с последней частью моего RE.

Любой вклад будет оценен.


person Chirag    schedule 10.09.2014    source источник
comment
Просто совет: отмените требование минимум 3 символа в первой части домена. Существуют допустимые доменные имена длиной менее 3 символов (например, wp.pl)   -  person Lucas Trzesniewski    schedule 10.09.2014


Ответы (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}) — это отрицательный просмотр вперед, который гарантирует, что ни один из символов не будет повторяться более трех раз подряд.

Остальная часть регулярного выражения такая же, за исключением удаления . из второго класса символов.

Демо RegEx


Если вы хотите запретить повторяющиеся символы после последнего ., вы можете вместо этого использовать следующее:

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

Демо RegEx

person Amal Murali    schedule 10.09.2014
comment
@Murali, можно ли проверять повторяющиеся символы только после точки (.) в адресе электронной почты в последней части? - person Chirag; 10.09.2014
comment
@Chirag: Конечно, просто переместите отрицательный прогноз после .. Смотрите обновленный ответ. - person Amal Murali; 10.09.2014

Это не позволит использовать более трех повторяющихся символов после последней точки,

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

ДЕМО

person Avinash Raj    schedule 10.09.2014