Я пытаюсь проверить электронную почту с помощью javascript, но по какой-то причине она не работает.
ПРОБЛЕМА: Когда я вхожу ДЕЙСТВИТЕЛЬНЫЙ адрес электронной почты он по-прежнему предупреждает, что это мой адрес неисправна ...
Что я здесь отсутствует? Вот код:Регулярные выражения Javascript не работают должным образом
$(document).ready(function(){
$('.info').hide();
$('#button').click(function(){
var name = encodeURIComponent($('#name').val());
var email = encodeURIComponent($('#email').val());
var message = encodeURIComponent($('#message').val());
var reg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
//if name is empty
if($('#name').val() == 0){
$('.info').html('<p style="font-weight:bold;text-align:center;font-size:20px;"> Molimo unesite Vaše ime!</p>').fadeIn(1000);
}
//if name is less than three characters
else if(name.length < 3){
$('.info').html('<p style="font-weight:bold;text-align:center;font-size:20px;"> Molimo unesite ime duže od tri slova!</p>').fadeIn(1000);
}
// if email is empty
if ($('#email').val() == 0){
$('.info').html('<p style="font-weight:bold;text-align:center;font-size:20px;"> Molimo unesite Email!</p>').fadeIn(1000);
}
// if email AND name are empty
if($('#email').val() == 0 && $('#name').val() == 0){
$('.info').html('<p style="font-weight:bold;text-align:center;font-size:20px;"> Molimo unesite Email!<br/>Molimo unesite ime!</p>').fadeIn(1000);
}
//if mail adress is NOT valid
if(reg.test(email)==false){
//alert('please enter valid mail!');
$('.info').html('<p style="font-weight:bold;text-align:center;font-size:20px;">Molimo unesite ispravan Mail!</p>').fadeIn(1000);
}
//if mail adress IS VALID (this is not working...)
if($('#name')!= '' && reg.test(email) !=false){
//alert(data);
var data = 'name=' + name + '&email=' + email + '&message=' + message;
$.ajax({
type:"POST",
url:'kontakt2.php',
cache:'false',//IE FIX
data: data,
success: function(){
//alert('THX for your mail!');
} //end sucess
});
} //end if statment for VALID mail
//return false prevent Redirection
return false;
});
});
Так намного проще использовать предварительно упакованное, проверенное решение: http://www.position-absolute.com/articles/jquery-form-validator-because-form -validation-is-a-mess/ – bpeterson76
Ваше регулярное выражение слишком простое. Посмотрите на это сообщение комментарии там: http://stackoverflow.com/questions/201323/how-to-use-a-regular-expression-to-validate-an-email-addresses – Michael
Что действительный e-mail адрес, с которым он не работает? Конечно, есть много действительных адресов электронной почты, которые, вероятно, потерпят неудачу. Адреса электронной почты, как известно, трудно полностью проверить, поэтому вы можете просто сделать некоторые базовые биты типа «есть ли @, есть ли в доменной части» и выполнять более надежные проверки, если необходимо, на стороне сервера (т. Е. Пытаться на самом деле отправлять почту на этот адрес). – Chris