【发布时间】:2011-09-16 03:27:35
【问题描述】:
我在让以下代码在我的脚本中正确工作时遇到了一点问题:
if (email == "") {
$("#field2 .error1").show();
$("input#email").focus();
return false;
}
else if(email != /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/) {
$("#field2 .error2").show();
$("input#email").focus();
return false;
}
基本上,我的页面上有一个表单,它使用外部 js 文件验证几个字段。我希望它检查电子邮件字段是否为空白或是否与正则表达式不匹配。如果它为空,则返回 .error,如果它与正则表达式不匹配,我希望它显示 .error2。
发生的情况是它显示了错误,但即使我输入了正确的电子邮件地址,它也不会验证,只会继续显示 .error2。我很困惑我在这里缺少什么,所以任何帮助都将不胜感激。
即使我试试这个,
if (email == "" || email != /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/) {
$("#field2 .error1").show();
$("input#email").focus();
return false;
}
我仍然无法发送表单???
好的,所以我已经尝试过了,它似乎工作正常。它看起来正确吗?另外,我会考虑 regx 字符串并使用更好的字符串,这只是为了让它按预期工作。
var email = $("input#email").val();
var regx = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9][a-zA-Z0-9.-]*[\.]{1}[a-zA-Z]{2,4}$/;
if (email == "") {
$("#field2 .error").show();
$("input#email").focus();
return false;
}
else if (!regx.test(email)){
$("#field2 .error2").show();
$("input#email").focus();
return false;
}
【问题讨论】:
-
这里有很多关于使用正则表达式验证电子邮件地址的其他线程。您可以通过简单的搜索找到所有这些。这是一个流行的:stackoverflow.com/questions/46155/…
标签: javascript validation email