检查联系表单中的电子邮件地址格式

And*_*ndy 5 forms email jquery

我正在使用一个带有名称,电子邮件和评论字段的简单表单来发送来自网页的消息.还有一个隐藏的标题字段,如果你愿意的话,它应该是空的,以便提交表单 - 垃圾邮件保护.

我在提交之前运行表单的JQuery代码工作正常,但目前只在电子邮件地址字段中查找"@"字符.我想要的是更好地检查格式正确的电子邮件地址.

这是代码.

    $(function() {  
    $('.error').hide();  
    $(".button").click(function() {  
    // validate and process form here  

        $('.error').hide();  
        var name = $("input#name").val();  
            if (name == "") {  
            $("label#name_error").show();  
            $("input#name").focus();  
            return false;
        }  
        var email = $("input#email").val();  
            if (!(email.indexOf('@') > 0)) {
            $("label#email2_error").show();  
            $("input#email").focus();  
        return false;  
        }  
        var message = $("textarea#message").val();  
            if (message == "") {  
            $("label#message_error").show();  
            $("textarea#message").focus();  
        return false;  
        } 
        var title = $("input#title").val()
            if(title !== "") {  
            $("input#title").focus();  
        return false;  
        } 

    var dataString = 'name='+ name + '&email=' + email + '&message=' + message;  
    //alert (dataString);return false;  
    $.ajax({  
        type: "POST",  
        url: "sendmail.php",  
        data: dataString,  
        success: function() {  
            $('#message_form').html("<div id='response'></div>");  
            $('#response').html("<div id='content_success_block' class='shadow_box'>")  
                .append("<div id='success_image'><img src='assets/misc/success.png'></div>")
                .append("<div id='success_text'>Thanks for contacting us! We will be in touch soon.</div>")
                .append("</div>")                   
            .hide()  
            .fadeIn(2500, function() {  
                $('#response');  
            }); 
        }  
    });  
    return false; 
    });

});
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏.

SpY*_*3HH 16

最适合"我"的那个

function validEmail(v) {
    var r = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
    return (v.match(r) == null) ? false : true;
}
Run Code Online (Sandbox Code Playgroud)

重要!

你应该读这个.它提供了有关电子邮件正则表达式的大量信息,以及为什么没有真正好的"全部,全部"解决方案.简而言之,您必须确定最适合您的预期用户的内容.


Incorperated

}  
var email = $("input#email").val();  
if (!validEmail(email)) {
    $("label#email2_error").show();  
    $("input#email").focus();  
    return false;  
}  
Run Code Online (Sandbox Code Playgroud)

您可能尝试的替代策略:我倾向于在按键超时检查电子邮件(因此,如果并非所有字段都准备好,则允许淡出提交按钮的能力)