我有一个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;
}
?>
答案 0 :(得分:2)
$('#email').on('blur', function(){
if(this.value.indexOf('.gov') > -1 || this.value.indexOf('.mil') > -1){
//it's valid, do nothing, or something..
}else{
alert('You must enter a valid Government or Military issue email address!');
$(this).focus();
}
});
答案 1 :(得分:1)
仅在用户尝试提交表单时才会验证。
<强> 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]+$/)