Архив рубрики: PHP

php регулярное выражение распознает email

для определения, введен ли правильный адрес email используйте такие регулярные выражения:

Статья была откорректирована и выражения переписаны. Недостатком прошлых выражений являлось то, что строка вида «tw32dream@mail.coca…com.ua» в которой идет три точки подряд тоже считалась правильным адресом электронной почты, что, в принципе нехорошо. Но я тогда ещё не додумался, как исправить данный момент. То есть первую точку после слова mail в нашем примере ещё мог контроллировать, а дальнейшие поддомены теоретически могут быть в любом количестве. Там было сложнее. Теперь эти недостатки исправлены.

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

если допустимы адреса на русском (имеется ввиду кириллица или другие языки, которые не пишутся на латинице)

— если не допускается точка в имени пользователя: мой_login@mail.ru :

^\w+@\w+(\.[\w]+)+$

— если точка в имени пользователя позволена: мой.login@mail.ru :

^[\w.]+@\w+(\.[\w]+)+$

 

если адреса допустимы только на латинице

— если не допускается точка в имени пользователя: my_login@mail.ru :

^[\da-zA-Z_]+@[\da-zA-Z_]+(\.[\da-zA-Z_]+)+$

— если точка в имени пользователя позволена: my.login@mail.ru :

^[\da-zA-Z_.]+@[\da-zA-Z_]+(\.[\da-zA-Z_]+)+$