Регулярное выражение для проверки адреса электронной почты, учитывая, что в начале или в конце может потребоваться обрезка - PullRequest
0 голосов
/ 27 апреля 2011

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

<asp:RegularExpressionValidator EnableClientScript="true" 
    ValidationGroup="Email" class="errorMessages" ID="revEmail" runat="server" 
    ErrorMessage="Your email address does not appear to be of a valid form."
    ControlToValidate="txtEmail" 
    ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">
   * Email format is invalid.
</asp:RegularExpressionValidator>

Это хорошо работает для таких вещей, как "abc@yahoo.com"

Однако многие пользователи сокращают и вставляют свои электронные письма, поэтому иногдаможет быть "abc@yahoo.com " или " abc@yahoo.com".

. На этом этапе это справедливо делает недействительной запись.

Делая небольшой поиск, кажется, "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" является стандартным способом проверки электронной почты.Однако может ли кто-нибудь помочь мне изменить регулярное выражение для принятия ситуаций, подобных "abc@yahoo.com "?

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

1 Ответ

2 голосов
/ 27 апреля 2011

Вы можете использовать \s в регулярных выражениях для поиска пробелов и * для соответствия нулю или более.Таким образом, оборачивая ваше выражение \s*...\s*, вы можете использовать неограниченное количество пробелов вокруг вашего выражения.Соедините это с уже имеющимся выражением:

\s*\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*\s*
...