Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   проверка email на javascript (https://javascript.ru/forum/events/53128-proverka-email-na-javascript.html)

Vlasenko Fedor 23.01.2015 00:44

Для полноты обзора. Проверка на php :lol:
function validEmail($email = '') {
	$result = false;
    if (strpos($email, '@') !== false) {
		$arr = explode("@", $email);
        $result =  getmxrr($arr[1], $a);
    }
    return $result;
}
 //

var_dump(validEmail('me@mail.ru'));

danik.js 23.01.2015 07:32

Poznakomlus, предложил вариант не в тему, и тот неправильный )
filter_var($email, FILTER_VALIDATE_EMAIL)

Vlasenko Fedor 23.01.2015 11:04

Цитата:

Сообщение от danik.js
Poznakomlus, предложил вариант не в тему, и тот неправильный )

Че? Ты проверяешь строку на основе стандартов.
А мой вариант что делает? Как работает getmxrr
Так и знал, что в диковинку будет :lol:

danik.js 23.01.2015 11:12

Цитата:

Сообщение от Poznakomlus
что в диковинку будет

Знаю я подобную фигню. Использовал недавно dns_get_record для получения DNS_A + DNS_MX + DNS_NS. Просто не заметил в коде.

Существование домена еще не гарантирует существование мыла.
Кроме того, не помню как обстоят дела с субдоменами. getmxrr работает с субдоменами? Да, вроде должно работать..

alerzo 29.01.2015 20:33

Подскажите как сделать чтобы заработала проверка..(
http://learn.javascript.ru/play/FzYrvc

рони 29.01.2015 22:19

alerzo,
может документацию вам почитать
нет у вас document.getElementById('email') ... и т.д.
<!DOCTYPE HTML>
<html>
  <head> <meta charset="utf-8"></head>
  <body>

    <script>
function validate_form() {
    var valid = checkmail();
    if (!document.contact_form.terms.checked) {
        alert("Отметьте галочку внизу формы что Вы не робот и почту ввели верно!");
        valid = false;
    };

    return valid;

    function checkmail() {
        var value = document.getElementById('email').value;
        var reg = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
        if (!value.match(reg)) {
            alert("Пожалуйста, введите свой настоящий e-mail");
            document.getElementById('email').value = "";
            return false;
        }
        return true
    }
}
    </script>



    <h3>Свяжитесь со мной</h3>
        Оставьте Ваш e-mail и мы сами Вам напишем в ближайшее время
     <form id="newsletter" action="contact.php" name="contact_form" onsubmit="return validate_form();">
          <div>
            <div class="bg">
              <input class="input" name="email" type="text" required id="email" ><br>
              Я человек и ввел почту верно <input type="checkbox" name="terms" value="Yes">
               </div>
            </div>
            <input class="button" type="submit" value="Жду ответа">
        </form>

</body>

</html>

danik.js 29.01.2015 22:52

Цитата:

Сообщение от рони
required

Я вот думаю: боты наверняка обращают внимание на этот атрибут )
Но это то ладно - поля все равно все подряд заполняются. А вот pattern и type=email|tel|url|number - очень даже в "помощь".
Такой вот недостаток HTML5 валидации :D

alerzo 30.01.2015 08:46

рони, спасибо за помощь!


Часовой пояс GMT +3, время: 14:42.