^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}$
Тут проверяется весь адрес:
- Первая часть (логин), до собаки, он может состоять из букв латинского алфавита, цифр, дефиса и нижнего подчеркивания.
- Собака (@), собака должна присутствовать сразу после логина.
- Адрес почтового сервиса, что следует после символа собаки. Он может состоять из букв латинского алфавита, цифр и дефиса. Обязательно должна быть точка, после точки следуют буквы латинского алфавита, в количестве от двух до шести.
Использовать это регулярное выражение надо функцией preg_match, данная функция выполняет проверку на соответствие регулярному выражению.
Пример, как можно проверить адрес электронной почты, при помощи регулярного выражения:
if (!preg_match('~^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}$~', $mail))
{
exit('Неверная почта.');
}
Если в адресе почты будет ошибка, то пользователь получит сообщение об ошибки:
Неверная почта.
Если код проверки нужен в виде пользовательской функции, то можно переписать его так:
function correct_mail($mail)
{
if (!preg_match('~^[a-zA-Z0-9_\.\-]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z]{2,6}$~', $mail))
{
return 'Неверная почта.';
}
return 'Почта корректна.';
}
И проверять, например, так:
echo correct_mail('login@mail.ru');