jQuery未验证电子邮件格式
非常具体的一个问题是,这个jQuery总是在控制台上记录电子邮件格式是无效的,尽管它是一个真实的地址。我似乎不明白为什么。regexp正确吗?非常感谢您的帮助jQuery未验证电子邮件格式,jquery,forms,validation,Jquery,Forms,Validation,非常具体的一个问题是,这个jQuery总是在控制台上记录电子邮件格式是无效的,尽管它是一个真实的地址。我似乎不明白为什么。regexp正确吗?非常感谢您的帮助 // VALIDATION ON BLUR $("#prospects_form > *").blur(function() { // Validate Email function valEmail() { var email = $("#form_emai
// 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或alertemail.value
并检查其是否符合预期。仅供参考,正则表达式看起来有效:注意:您的正则表达式将无法匹配某些内容+deliver@domain.tld
以及具有特殊字符的域将不会被标记为有效。另外,这一部分有点奇怪([a-zA-Z0-9]{2,4})+
你说
之后的最后一部分出现了一次或多次2-4[a-zA-Z0-9]
,而这将适用于4
字符以上的TLD,这看起来很奇怪。
$("#form_email").value;