Проверка правильности написания email адреса
Будем считать, что стандартный адрес электронной почты выглядит так: admin@mail.ru
Адрес состоит из двух частей это:
admin - имя пользователя.
mail.ru - домен, доменное имя.
Их разделяет знак @(собака).
Имя пользователя - может состоять из букв разного регистра, цифр, знаков подчёркивания, точек, минусов.
Доменное имя - так же может состоять из букв разного регистра, цифр, знаков подчёркивания, точек, минусов.
В результате паттерн (шаблон), с которым функция будет сравнивать email адрес, может выглядеть так:
1. "[-0-9a-z_.]+@[-0-9a-z_^.]+" - это часть паттерна (шаблона), проверяющая имя пользователя, собаку и домен второго уровня до точки
2. ".[a-z]{2,6}" - эта часть проверяет домен первого уровня (ru,com,ua и т.д.).
Объединим всё и получим такой шаблон:
"|[-0-9a-z_.]+@[-0-9a-z_^.]+.[a-z]{2,6}|i"
В конце шаблона присутствует модификатор i он сообщает интерпретатору, что поиск проводится без учёта регистра, т.е. могут присутствовать и заглавные буквы и прописные.
Для того чтобы шаблон проверял чётко лишь email адрес, к нему следует добавить знак начала строки ^ и конец строки $.
"|^[-0-9a-z_.]+@[-0-9a-z_^.]+.[a-z]{2,6}$|i"
Листинг № 1 - Проверка корректности ввода email-адреса
<form name="form1" method="post" action="">
  <label>Введите email-адрес<br>
    <input type="text" name="email" id="textfield">
  </label>
  <label>
  <input type="submit" name="button_22" id="button" value="Проверить">
  </label>
</form>
<?php
 
if($_POST['button_22'] == "Проверить")
{
        if(!empty($_POST['email']))
        {
          if(preg_match("|^[-0-9a-z_.]+@[-0-9a-z_^.]+.[a-z]{2,6}$|i", $_POST['email']))
          {
              echo $_POST['email']. "  -  Правильный.";
          }
          else
          {
              echo $_POST['email']. "  -  НЕ правильный."; 
          }
        }
        else
        {
          echo "Вы не ввели email."; 
        }
}
?>
                                            
            
            


