【发布时间】:2018-01-28 08:10:11
【问题描述】:
我正在尝试检查我的状态并提取recEmail、cc 和bcc 的内容。在每个内部,您可以有多个电子邮件,由 , 分隔。例如
recEmail 可能有:email1@email.com、email2@email.com
cc 可能有:email3@email.com、email4@email.com
我正在使用 lodash 循环遍历“this.state”对象并将电子邮件推送到一个数组中,但是我必须循环遍历这个新数组以将电子邮件分成每个数组位置 1 封电子邮件(所以我可以运行一个正则表达式,看看它是否是一个有效的电子邮件)。
这种方法看起来很乱,我不禁想到有更好的方法来解决这个问题。这是我目前所拥有的。
this.state = {recEmail: '', cc: '', bcc: '', subject: '', bodyText: '', testInput: false};
stateCleaner(emails){
var emailstoClean = [];
_.forOwn(emails, (value, key) => {
console.log('these are the keys: ', key);
console.log('these are the values: ', value);
if(key !== 'testInput'){
emailstoClean.push(value.split(', '))
}
})
console.log('final emailstoClean: ', emailstoClean);
return emailstoClean
}
这给了我 emailstoClean 数组索引 0 中的两封电子邮件,以及位置 1 中的两封电子邮件(我在 recEmail 中输入了两封,在 cc 字段中输入了两封)。
有没有一种方法可以进一步简化这个过程,只在每个数组索引中获取一封电子邮件?也可能它有点相关,但包括一个如何检查它是否是有效电子邮件的正则表达式也会很棒。如果有任何其他细节你们都需要,请告诉我。感谢大家的帮助。
【问题讨论】:
标签: javascript arrays lodash email-validation