jQuery未验证电子邮件格式

jQuery未验证电子邮件格式,jquery,forms,validation,Jquery,Forms,Validation,非常具体的一个问题是,这个jQuery总是在控制台上记录电子邮件格式是无效的,尽管它是一个真实的地址。我似乎不明白为什么。regexp正确吗?非常感谢您的帮助 // VALIDATION ON BLUR $("#prospects_form > *").blur(function() { // Validate Email function valEmail() { var email = $("#form_emai

非常具体的一个问题是,这个jQuery总是在控制台上记录电子邮件格式是无效的,尽管它是一个真实的地址。我似乎不明白为什么。regexp正确吗?非常感谢您的帮助

    // VALIDATION ON BLUR
    $("#prospects_form > *").blur(function() {

        // Validate Email
        function valEmail() {
            var email = $("#form_email"),
                // Check address format
                emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

            if (!emailFilter.test(email.value)) {
                // Incorrect
                $("#form_email").addClass("invalid");
                console.log('email invalid');
            } else {
                // Correct
                $("#form_email").removeClass("invalid");
                console.log('email valid');
            }
        }
        valEmail();

    });
我的评论如下:

因为var email是一个jQuery对象,所以您应该尝试email.val()来获取 它的价值

如果您使用
email.val()
,我就可以显示它


jquery Dom对象没有属性

用这个

$("#form_email").val();
而不是

$("#form_email").value;

希望这有帮助….

被视为
var email
是一个jQuery对象,您应该尝试
email.val()
获取其value.log或alert
email.value
并检查其是否符合预期。仅供参考,正则表达式看起来有效:注意:您的正则表达式将无法匹配
某些内容+deliver@domain.tld
以及具有特殊字符的域将不会被标记为有效。另外,这一部分有点奇怪
([a-zA-Z0-9]{2,4})+
你说
之后的最后一部分出现了一次或多次2-4
[a-zA-Z0-9]
,而这将适用于
4
字符以上的TLD,这看起来很奇怪。
$("#form_email").value;