У меня есть html-форма, которая запрашивает любую электронную почту. в настоящее время у меня есть функция php, которая смотрит на запись и подтверждает, действительно ли она является правильной правительственной или военной электронной почтой. (Это не распространяется на все типы электронной почты. Это довольно просто). Я пытаюсь понять способ, который будет проверять, действительно ли письмо является действительным, и предупредить пользователя о том, что конкретно не так, с адресом электронной почты, который они ввели во время использования jquery. Ниже приводится то, что у меня есть до сих пор.
<form id="mil" name="mid" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<input type="text" id="email" name="email" style="width: 200px;">
<input type="submit" value="Submit" id="Submit" name="Submit">
</form>
<?php
function isValidEmail($email){
if (filter_var( $email, FILTER_VALIDATE_EMAIL ) == true){
if(strpos($email, '.gov') !== false || strpos($email, '.mil') !== false)
return true;
} else {
return false;
}
}
if($_POST['Submit'] == "Submit")
{
$valid = isValidEmail($_POST['email']);
if($valid == false): echo "Not a government or military email";
else: echo "Valid email";
endif;
}
?>
Это будет проверяться только тогда, когда пользователь попытается отправить форму.
HTML
<form id="mil" ... onsubmit="return valForm()">
JS
function valForm() {
if(!$('#email').val().match(/.gov|.mil/)) {
alert("Not Valid Email");
return false;
}
return true;
}
РЕДАКТИРОВАТЬ:
С помощью этого регулярного выражения вы можете полностью проверить электронную почту пользователя:
$('#email').val().match(/^[ -~]+@[ -~]+\.[mil|gov]+$/)
$('#email').on('blur', function(){
if(this.value.indexOf('.gov') > -1 || this.value.indexOf('.mil') > -1){
//it valid, do nothing, or something..
}else{
alert('You must enter a valid Government or Military issue email address!');
$(this).focus();
}
});