Проверка адреса электронной почты Regex завершается неудачно, если присутствует символ подчеркивания - PullRequest
0 голосов
/ 31 августа 2010

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

Мой Regex работает, за исключением случаев, когда введенный адрес электронной почты имеет подчеркиваниесимвол (_) в нем.

Из-за отсутствия у меня опыта работы с регулярными выражениями я не уверен, где в моем шаблоне я должен добавить оскорбительный символ, чтобы разрешить его:

Dim pattern As String = "^[-a-zAZ0-9][-.a-zA-Z0-9]*@[-.a-zA-Z0-0]+(\.[-.a-zA-Z0-0+)*\." & _
    "(com|edu|info|gov|int|mil|net|org|biz|name|museum|coop|aero|pro|tv|[a-zA-Z]{2})$"

У другого парня на DreamInCode была такая же проблема.Он сказал, что исправил это, добавив _ после числовой проверки.

Я вижу A-Z0-9, но я не уверен, что это числовая проверка ... Я не работалмного в Regex, поэтому я надеюсь, что никто не возражает, указав, куда добавить _

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 31 августа 2010

Если вы действительно хотите возможное исправление вашего регулярного выражения:

Dim pattern As String = "^[a-zA-Z0-9][-\._a-zA-Z0-9]*@[a-zA-Z0-9][-\.a-zA-Z0-9]*\.(com|edu|info|gov|int|mil|net|org|biz|name|museum|coop|aero|pro|tv|[a-zA-Z]{2})$"

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

0 голосов
/ 11 февраля 2013

Это тот, который предотвращает подчеркивание перед '@', если кому-то это нужно,

^[a-zA-Z0-9][-\.a-zA-Z0-9]*@[a-zA-Z0-9][-\.a-zA-Z0-9]*\.(com|edu|info|gov|int|mil|net|org|biz|name|museum|coop|aero|pro|tv|[a-zA-Z]{2})$

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

0 голосов
/ 31 августа 2010

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

Простая проверка может состоять в проверке, есть ли в ней @.Но если вы хотите использовать свое регулярное выражение, вы должны добавить _ в класс char: [-a-zA-Z0-9_]

...