检查电子邮件是否具有特定域

时间:2019-04-17 16:42:47

标签: javascript google-apps-script google-sheets

我正在尝试添加检查以查看电子邮件(字符串)是否属于google脚本中特定域的一部分。例如,域将为“ @ company.com”,因此所有带有此名称的电子邮件都将通过支票,而没有该电子邮件的电子邮件将不会通过

基本上,我所拥有的是一种使用以下方法检索当前用户的电子邮件的方法:

var email = Session.getEffectiveUser().getEmail();

现在,我要检查此电子邮件中的特定域/公司 范例:abc@companyname.com

在这种情况下,它将是“ @ companyname.com”部分

我知道通常可以使用其他语言来执行此操作,但是如何在应用脚本中执行此操作?

2 个答案:

答案 0 :(得分:1)

这是一个使用正则表达式匹配有效电子邮件并记录结果的函数。请注意,我正在使用i标志进行不区分大小写的搜索:

function emailCheck(email) {
  var regExp = new RegExp("[a-z0-9\.-_]*@companyname\.com$", "i");
  match = email.match(regExp);
  if(match)
    match = true;
  else
    match = false
  Logger.log(email + ' - ' + match);
  return match
}

以下输入:

tests = ['ABC.345@companyNAME.com','no_no@goggle.com','ABC.345@companyNAME.com.edu']
for each (test in tests) {
    emailCheck(test);
}

输出:

ABC.345@companyNAME.com - true
no_no@goggle.com - false
ABC.345@companyNAME.com.edu - false

答案 1 :(得分:0)

您可以使用以下简单的正则表达式来测试电子邮件:

/@company\.com$/

使用JavaScript,您可以使用此true / false测试:

/@company\.com$/.test(email)

这是一个有效的示例:

const emailTest = email => /@company\.com$/.test(email);

['abc@company.com', 'abc@gmail.com', 'abc.123@gmail.company.com', 'defg@company.com', 'abc.123@company.gmail.com']
  .forEach(email => console.log(email.padEnd(30), emailTest(email)))