Это e-mail-regex исключает действительные адреса? - PullRequest
2 голосов
/ 18 мая 2010

Я пытался создать регулярное выражение, которое ловит все RFC-допустимые адреса, но это нормально, если некоторые ложные срабатывания проходят (хотя, надеюсь, не так много). Это то, что я дошел до сих пор:

/^\b\S+@\S+\.[^\s@]{2,}\b$/

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

Ответы [ 5 ]

5 голосов
/ 18 мая 2010

Проверьте это сообщение:

Использование регулярного выражения для проверки адреса электронной почты

Существует также это:

http://www.ex -parrot.com / PDW / Mail-RFC822-Address.html

Ничего подобного регулярному выражению 6000+ символов!

3 голосов
/ 18 мая 2010

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

test(Oh (noes, an @) "sign")@(Here comes the domain)domain.com(TLD is com!!)

Даже без комментариев локальная часть может содержать строки в кавычках, которые могут содержать пробелы. Лучший подход, который я нашел, - это поискать @. Это обязательно. Так что я бы использовал

/.+@.+/
3 голосов
/ 18 мая 2010
"foo bar"@example.com

Локальная часть может содержать пробелы (они должны быть в кавычках, но они действительны).

1 голос
/ 18 мая 2010
name@[1.2.3.4]

не соответствует, но допустимо. Хороший список действительных / недействительных почтовых адресов для тестирования можно найти здесь .

0 голосов
/ 18 мая 2010

Попробуйте regexbuddy для проверки регулярных выражений. Еще один удобный сайт, которым я часто пользуюсь, это regexplib

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...