javascript — функция для проверки синтаксиса электронной почты / frmat

Это должна быть очень простая функция для реализации в моем коде PHP

Но по какой-то причине я не могу заставить его работать.

Я создаю две функции для моего атрибута электронной почты:

первая функция должна проверять синтаксис / формат письма и обеспечивать его правильность

Затем вторая функция должна сравнить два поля электронной почты (первое поле — электронная почта, второе поле — «подтвердить электронную почту»). Если пользователь введет два разных электронных письма, он получит ошибку.

Вот две функции (javascript):

function validateEmail() {
var email = document.getElementById("email").value
if (!filter_var(email, FILTER_VALIDATE_EMAIL))
{
alert("You have entered an invalid email address !");
return false;
}
return true;
}function confirmEmail() {
var email = document.getElementById("email").value
var email2 = document.getElementById("email2").value
if (email != email2) {
alert('The email addresses you entered do not match !');
return false;
}
return true;
}

Странная вещь: вторая функция работает отлично. Тем не менее, первый нет.

Для второй функции я добавил следующее свойство в форму: onSubmit = «return verifyEmail ()»

Для первой функции у меня НЕТ ИДЕИ, что делать ((((

Я также попытался добавить его в форму: onSubmit = «return verifyEmail () && подтвердить адрес электронной почты()»

Но не повезло.

Во-вторых, я попытался добавить первую функцию к самому атрибуту email в форме:

Все еще не работает.

Итак, я решил попробоватьOnKeyUp«

(На самом деле, это немного глупо; потому что это означает, что: функция сработает в тот момент, когда пользователь начинает вводить в поле электронной почты. Это бессмыслица. Функция должна работать только после пользователь ввел адрес электронной почты и перешел к следующему полю в форме)

В любом случае, поскольку JavaScript не работал, я решил попробовать простой PHP.

Я нашел это в Google:

<?php

$email = test_input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid email format";
}

?>

И до сих пор не работает. Я понятия не имею, что я делаю не так.

(а) я неправильно называю Javascript?
(б) я использую код PHP где-то, я не должен его использовать ??

В общем, я в растерянности.

ОБНОВИТЬ :

Пожалуйста, игнорируйте ту бессмыслицу PHP, которую я написал внутри функции JavaScript

Это была ошибка.

Вот фактическая функция JS для validateEmail:

     function validateEmail() {
var email = document.getElementById("email").value
var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]
{2,4})+$/;;
if (email.val() == '' || !filter.test(email.val()))
{
alert('You have entered an invalid email address !!');
email.focus();
return false; }
return true; }

И, пока мы обсуждаем эту тему, возможно, мне следует остановиться подробнее.

Ранее я создал третью функцию электронной почты ……….., чтобы определить, существует ли введенная электронная почта уже в базе данных MySQL.

Вот функция, которую я использовал:

    <SCRIPT type="text/javascript">

$(document).ready(function() {

var min_chars = 4;

var characters_error = 'You must enter a minimum of 4 characters!';
var checking_email = 'Checking Email Validity....';

$('#email').keyup(function(){
//run the character number check
if($('#email').val().length < 4) {

$('#email_availability_result').html(characters_error);  }
else{

$('#email_availability_result').html(checking_email);
check_email();
}
});
});//function to check email AVAILABILITY in database

function check_email(){
var email = $('#email').val();
var button_check_email=true;

//use ajax to run the check
$.post("check.php", { email: email },
function(email_result){
//if the result is 1
if(email_result == 1){
//show that the email is available
button_check_email=false;
document.getElementById("submit").disabled = false;
$('#email_availability_result').html('that email is available');
}else{

button_check_email=true;
document.getElementById("submit").disabled = true;
$('#email_availability_result').html('Email address [' + email +
'] is already registered in our database.');
}
});
}
</SCRIPT>

Этот скрипт также отлично работает.

Однако первая часть сценария — пустая трата времени.

Не было необходимости вставлять функцию для подсчета «количества символов»

(HTML предоставляет свойство «minlength» для значений данных)

Итак, что мне нужно сделать, это полностью удалить эту часть и каким-то образом заменить ее на что-то более полезное …………, например: проверка ДЕЙСТВИТЕЛЬНОСТИ адреса электронной почты.

Беда в том, что я пытался, но только испортил код))))

-2

Решение

Вы вызываете filter_var в своем коде JavaScript. Filter_var — это php-функция, о которой javascript ничего не знает.

Вы можете сделать проверку электронной почты непосредственно в html с html5. На входе введите type = «email» и добавьте необходимые для ввода. Это заставит вводить электронную почту.

<input type="email" required  ...

Если вы хотите использовать JS, вот глупая реализация:

function validateEmail() {
var email = document.getElementById("email").value;
if (email.indexOf('@') > email.indexOf('.') > email.length)
{
return true;
}
alert("You have entered an invalid email address !");
return false;
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector