我正在构建一个条件脚本,用于搜索以逗号分隔的电子邮件收件人列表。可以有多个收件人,条件脚本搜索三(3)个特定地址。
这不是一个完整的脚本 - 它只能包含一个条件语句。我们的问题是这个字段的字符数限制为255 ......我们已达到它。
目前的情况如下:
email.recipients.toLowerCase().indexOf('email_1') >= 0 || email.recipients.toLowerCase().indexOf('email_2') >= 0 || email.recipients.toLowerCase().indexOf('email_3') >= 0
这符合我们的字符限制 - 并且有效 - 但现在我们需要添加另一个电子邮件地址来搜索。有没有办法缩短这种状况?
答案 0 :(得分:1)
如果您可以使用ES6(您不必担心Internet Explorer),可以使用箭头功能:
['email_1','email_2','email_3'].some(e=>email.recipients.toLowerCase().indexOf(e)+1);
答案 1 :(得分:0)
使用some
: -
['email_1', 'email_2', 'email_3'].some(function(e) {
return email.recipients.toLowerCase().indexOf(e) >= 0;
});
答案 2 :(得分:0)
根据特定的电子邮件地址,正则表达式解决方案可能更简单:
/email_[1-3]/i.test(email.recipients)
答案 3 :(得分:0)
当然不是完美的答案,但你可以使用别名缩短一点(注意var冲突,因为你不能在这个表达式中使用var
关键字,这意味着var将是全局的,它也可能无法在严格的模式下工作,我认为。)
刚刚回答,因为评论太长了。希望迭代帮助。
var email = {}; email.recipients = 'email_1,email_2,email_3';
console.log((a = email.recipients.toLowerCase()) && (a.indexOf('email_1') >= 0 || a.indexOf('email_2') >= 0 || a.indexOf('email_3') >= 0));