我正在尝试使用下面的代码验证电子邮件,目前它会测试电子邮件以查看其是否与正则表达式匹配,但是即使输入了有效电子邮件,也会激活错误,并且页面不会提交
$('#emailsubmit').submit(function() {
var email = new RegExp(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
if (!("#emailAddr").match(email)) {
$("#errormsg").html("Please insert a valid email");
$("#errormsg").show();
var emailaddr = $("#emailAddr").val();
alert(emailaddr);
return false;
}
});
最佳答案
您忘记了使用JQuery的.val()
方法来获取元素的值。相反,您尝试在HTML元素(显然不是字符串)上使用.match()
。码:
$('#emailsubmit').submit(function() {
var email = new RegExp(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
if (!("#emailAddr").val().match(email)) {
$("#errormsg").html("Please insert a valid email");
$("#errormsg").show();
var emailaddr = $("#emailAddr").val();
alert(emailaddr);
return false;
}
});