我正在尝试从javascript函数返回一个值,该函数检查多个电子邮件地址的字符串是否包含有效的电子邮件:
validateEmail函数:
validateEmail = function(email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email);
} // this returns true/false
var emails = ["asdf@yahoo.com", "dfdf@yahoo.com"]
var emailResult = function(emails) {
var result;
emails.forEach(function(email) {
if(validateEmail(email.trim()) === false) {
result = false;
}
});
return result
}
如果任何电子邮件有效,我希望emailResult
等于false。但是,当我运行console.log(emailResult)
时,我只是打印出我的函数代码。有人可以帮忙吗?
谢谢!
答案 0 :(得分:2)
您正在将函数本身发送到console.log()。您需要调用该函数,并将函数的结果传递给console.log(),如下所示:
console.log(emailResult(emails));
答案 1 :(得分:0)
那是因为你需要调用这个函数。如果你改为console.log(validateEmail("test@"test.com"));
,你可以让它工作,或者你可以这样重构:
function validateEmail (email) {
var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
return re.test(email);
} // this returns true/false
var emails = ["asdf@yahoo.com", "dfdf@yahoo.com"]
var emailResult = function(emails) {
var result;
emails.forEach(function(email) {
if(validateEmail(email.trim()) === false) {
result = false;
}
});
return result
}
var theEmails = validateEmail("Test@Test.com");