Регулярное выражение для некоторых правил электронной почты - PullRequest
3 голосов
/ 17 февраля 2010

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

Письмо должно содержать символ «@» и заканчиваться на .xx или .xxx, т. Е. (. Nl или .com). Они счастливы с этим, чтобы пройти проверку. Я начал выражение, чтобы увидеть, содержит ли строка символ "@", как показано ниже

^ (? =. * [@])

это похоже на работу, но как мне добавить последнее требование (должно заканчиваться на .xx или .xxx)?

Ответы [ 6 ]

2 голосов
/ 17 февраля 2010

Невозможно проверить каждый адрес электронной почты с помощью RegEx, но для ваших требований это простое регулярное выражение работает.Он не является ни полным, ни каким-либо образом не проверяет наличие ошибок, но точно соответствует спецификациям:

[^@]+@.+\.\w{2,3}$

Объяснение:

  • [^ @] +: Соответствует одному или несколькимсимволы, которые не являются @
  • @: соответствует @
  • . +: соответствует одному или нескольким символам
  • \ .: соответствует a.
  • \ w {2,3}: сопоставить 2 или 3 слова-символа (a-zA-Z)
  • $: конец строки
2 голосов
/ 17 февраля 2010

Я всегда использую это для писем

          ^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}" +
            @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
            @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$

Попробуйте http://www.ultrapico.com/Expresso.htm, а также!

2 голосов
/ 17 февраля 2010

Регулярное выражение, просто выполняющее ваши два требования:

^.+@.+\.[a-zA-Z]{2,3}$

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

1 голос
/ 17 февраля 2010

Попробуйте это:

([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})\be(\w*)s\b

Хороший инструмент для проверки нашего регулярного выражения: http://gskinner.com/RegExr/

0 голосов
/ 19 февраля 2014

Это должно работать:

^[^@\r\n\s]+[^.@]@[^.@][^@\r\n\s]+\.(\w){2,}$

Я проверил его по этим недействительным адресам электронной почты:

@exampleexample@domaincom.com   
example@domaincom  
exampledomain.com  
exampledomain@.com  
exampledomain.@com  
example.domain@.@com  

e.x+a.1m.5e@em.a.i.l.c.o  

some-user@internal-email.company.c  
some-user@internal-ema@il.company.co  
some-user@@internal-email.company.co  

@test.com  
test@asdaf  
test@.com    
test.@com.co  

И эти действительные электронные письма:

example@domain.com  
e.x+a.1m.5e@em.a.i.l.c.om  
some-user@internal-email.company.co 

редактировать

Похоже, что этот проверяет все адреса со страницы википедии, хотя, возможно, он также допускает некоторые недействительные электронные письма. Скобка разделит его на все до и после @:

^([^\r\n]+)@([^\r\n]+\.?\w{2,})$

niceandsimple@example.com
very.common@example.com
a.little.lengthy.but.fine@dept.example.com
disposable.style.email.with+symbol@example.com
other.email-with-dash@example.com
user@[IPv6:2001:db8:1ff::a0b:dbd0]
"much.more unusual"@example.com
"very.unusual.@.unusual.com"@example.com
"very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com
postbox@com
admin@mailserver1
 !#$%&'*+-/=?^_`{}|~@example.org
"()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a"@example.org
" "@example.org
üñîçøðé@example.com
üñîçøðé@üñîçøðé.com
0 голосов
/ 17 февраля 2010

Вы можете использовать

[@].+\.[a-z0-9]{2,3}$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...