Top Ad unit 728 fff 90

Проверка правильности написания 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."; 

        }

}

?>
All Rights Reserved by ProcessPlus 2014 - 2020

Написать нам

Имя

Email *

Сообщение *