我有这两个功能:
validateEmail: function(value) { var regex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; return (regex.test(value)) ? true : false; } validateEmails: function(string) { var self = shareEmail; var result = string.replace(/\s/g,"").split(/,|;/); for(var i = 0;i < result.length;i++) { if(!self.validateEmail(result[i])) { return false; } else { return true; } } }
问题是,当我测试这样的电子邮件if(!self.validateEmails(multipleEmails)){我只根据字符串中的第一封电子邮件得到真或假,但我想测试字符串中的任何电子邮件.
谢谢!
解决方法
问题是你的if / else阻止;你在两种情况下都回来了.这意味着它仅在评估一个元素后离开函数.
我修改了validateEmails来演示你可能想要做的事情:
validateEmail: function(value) { var regex = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; return (regex.test(value)) ? true : false; } validateEmails: function(string) { var self = shareEmail; var result = string.replace(/\s/g,|;/); for(var i = 0;i < result.length;i++) { if(!self.validateEmail(result[i])) { return false; } } return true; }