我正在尝试使用jQuery验证联系表单。名称字段使用此功能正确验证,但无论我做什么,每当我尝试发送时,即使使用有效的电子邮件,我也会在电子邮件输入中收到错误消息。在这一点上,我真的迷失了,真的很感激帮助。我很确定问题出现在电子邮件if正则(!/^S+@S+.S+$/.test(email.val()))
中的正则表达式中,但我无法理解。这是我正在使用的功能
$(function(){
var required = ["name", "email", "message"];
emptyerror = "Please fill out this field";
emailerror = "Please enter a valid e-mail";
email = $("#email");
errornotice = $("#error");
$("#contactForm").submit(function() {
for (var i = 0; i < required.length; i++) {
var inputField = $('#'+required[i]);
if ((inputField.val() == "") || (inputField.val() == emptyerror)) {
inputField.addClass("needsfilled");
inputField.val(emptyerror);
errornotice.fadeIn(750);
}
else {
inputField.removeClass("needsfilled");
}
if (!/^S+@S+.S+$/.test(email.val())) {
email.addClass("needsfilled");
email.val(emailerror);
}
if ($(":input").hasClass("needsfilled")) {
return false;
}
else {
errornotice.hide();
return true;
}
}
});
$(":input").focus(function() {
if ($(this).hasClass("needsfilled")) {
$(this).val("");
$(this).removeClass("needsfilled");
}
})
});
另外,我知道有更好的方法可以使用jQuery / js验证 not 。但这是一个学校项目,要求用javascript完成,即使它必须过度简化。
谢谢
答案 0 :(得分:2)
仅在您的代码中使用此方法或正则表达式:
function isValidEmail(pEmail) {
var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
if (!filter.test(pEmail)) {
return false;
}
return true;
}
答案 1 :(得分:0)
您使用的电子邮件验证还不够。我建议为此找到更好的RegExps。
这里有更好的RegExp:
from decoder import *
print(decode("12345"))
如果您需要详细信息,请查看此处使用regexp unicode categories的信息。