Javascript 电子邮件验证功能循环未推送所有值

Javascript 电子邮件验证功能循环未推送所有值,javascript,Javascript,我有一个逗号分隔的字符串值,我正在尝试拆分和清除有效电子邮件。虽然我已经能够将字符串拆分为一个数组,并且有一个功能来验证电子邮件地址的数组项,但它似乎没有循环遍历每个项并将有效的项推送到新数组中。目前我只推了一个值 提供以下字符串: 'test@gmail.com, email, nice@test.com' 以下是功能: function validateEmail(email) { var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<

我有一个逗号分隔的字符串值,我正在尝试拆分和清除有效电子邮件。虽然我已经能够将字符串拆分为一个数组,并且有一个功能来验证电子邮件地址的数组项,但它似乎没有循环遍历每个项并将有效的项推送到新数组中。目前我只推了一个值

提供以下字符串:

'test@gmail.com, email, nice@test.com'
以下是功能:

function validateEmail(email) {
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}  

function emailParser(emailString){
    var preFilterEmails = emailString.split(",");
    var postFilterEmails = [];

    for(i = 0; i < preFilterEmails.length; i++){
        console.log(preFilterEmails);
        if(validateEmail(preFilterEmails[i])){
            console.log("Filtered");
            console.log(preFilterEmails[i]);
            postFilterEmails.push(preFilterEmails[i])
        }
    }
    return postFilterEmails;
}
请尝试内置(连同和一起删除多余的空白):

const re=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*(\“+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]+[1,3}.+];
常量emailString=test@gmail.com电子邮件nice@test.com';
让emails=emailString.split(',')
.map(s=>s.trim())
.过滤器=>重新测试;

控制台日志(电子邮件)这是因为逗号后有空格。您可以在
split()之后
trim()

功能验证电子邮件(电子邮件){
变量re=/^([^()[\]\\,;:\s@\“]+(\.[^()[\]\,;:\s@\“]+)*)(\'+\”)(\[[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[1,3}.[0-9]{1,3}.];
返回重新测试(电子邮件);
}  
函数emailParser(emailString){
var preFilterEmails=emailString.split(“,”).map(x=>x.trim());
var postFilterEmails=[];
对于(i=0;i
[ 'test@gmail.com', ' email', ' nice@test.com' ]
Filtered
test@gmail.com
[ 'test@gmail.com', ' email', ' nice@test.com' ]
[ 'test@gmail.com', ' email', ' nice@test.com' ]
[ 'test@gmail.com' ]