Регулярное выражение для идентификатора электронной почты, которое будет разрешено только определенное количество точек (1-5) после знака @ - PullRequest
2 голосов
/ 28 января 2011

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

sangram@ab.cd.ef.gh.ij.kl.mn.op

Все регулярные выражения проверяют этот идентификатор электронной почты, который не является правильным.неправильный идентификатор электронной почты, по моему мнению, я понимаю, что могут быть домены sub-sub-sub, но все же более 5 точек не должны быть разрешены.

я хочу, чтобы эта вещь контролировалась и только от 1 до 5 точекможно ввести после знака @.

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

Заранее спасибо.я надеюсь, что stackoverflow решит эту проблему наверняка.

-Sangram

Ответы [ 3 ]

3 голосов
/ 28 января 2011

Я не уверен, почему вы считаете, что в адресе электронной почты возможно максимальное количество поддоменов.

В любом случае бессмысленно пытаться идеально сопоставить действительные адреса электронной почты с регулярным выражением.,Независимо от того, насколько барокко ваше регулярное выражение, оно пропустит бесчисленное количество недействительных адресов электронной почты, поскольку вы не знаете, является ли синтаксически правильный домен действительным доменом или действительно ли «правильное» имя пользователя принимает электронную почту.

Используйте этот шаблон:

/^[^@ ]+@[^@ ]+\.[^@ ]+$/

и покончите с этим.Подробнее об этом: Гуманная проверка электронной почты .

2 голосов
/ 28 января 2011

RFC 2822

Упрощенная версия:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?
2 голосов
/ 28 января 2011

Посмотрите, может ли это помочь.(Имейте в виду, что это сокращенная проверка)

\A[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\.){1,5}[A-Za-z]{2,4}\Z
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...