2015-09-09 24 views
1

我試圖從檢查多個電子郵件地址的字符串是否包含有效的電子郵件javascript函數返回值:商店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 = ["[email protected]", "[email protected]"] 

var emailResult = function(emails) { 
     var result; 
     emails.forEach(function(email) { 
      if(validateEmail(email.trim()) === false) { 
       result = false; 
      } 
     }); 
     return result 
    } 

如果任何的電子郵件是有效的,我想emailResult等於false。但是,當我運行console.log(emailResult)時,我只是從我的函數代碼中獲得一個打印。有人可以幫忙嗎?

謝謝!

+2

'console.log(emailResult(emails))'? (您也希望以'var result = true;'開始) – Amadan

+0

emailResult是函數本身,如果您想要返回值,則必須調用該函數。 emailResult([])將返回初始結果定義 – webdeb

回答

2

您要發送的功能本身CONSOLE.LOG()。您需要調用函數,並將函數的結果傳遞給console.log(),如下所示:

console.log(emailResult(emails)); 
0

這是因爲您需要調用該函數。你能得到它,如果你沒有console.log(validateEmail("[email protected]"test.com"));工作,而不是也可以restructe像這樣:

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 = ["[email protected]", "[email protected]"] 

var emailResult = function(emails) { 
     var result; 
     emails.forEach(function(email) { 
       if(validateEmail(email.trim()) === false) { 
        result = false; 
       } 
     }); 
     return result 
} 

var theEmails = validateEmail("[email protected]");