CRM Javascript检查无效的电子邮件格式,并只输入一封电子邮件

CRM Javascript to check invalid email format and enter exactly one email

本文关键字:电子邮件 输入 格式 Javascript 检查 无效 CRM      更新时间:2023-09-26

我正在为CRM 2013编写一个javascript,它在修改文本字段时触发。要求是:

  1. 检查输入的电子邮件地址是否无效。提醒弹出窗口消息
  2. 检查是否有多个电子邮件地址并弹出警报up消息。此字段中只允许有一个电子邮件地址

这是我的密码。起初,我使用分隔符来检查电子邮件地址输入列表,它很有效。我现在删除了要求#2的分隔符,它不再工作了。我是否需要更改仅针对一个电子邮件地址的正则表达式?

function EmailTest(EmailField) {
  var Email = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+'.([a-zA-Z])+([a-zA-Z])+/;
  if (Email.test(EmailField)) {
    return true;
  } else {
    return false;
  }
}
function CheckEmailString(context) {
  try {
    //getting the input
    var EmailString = context.getEventSource().getValue();
    if (EmailString != null) {
      var Flag = true;
      if (!EmailTest(EmailString)) {
        Flag = false;
      }
      //}
      if (Flag != true) {
        alert("Please check if the email might contain invalid format. Note that only one email address is allowed for this.");
        //prevents users from saving the form if not valid
        //context.getEventArgs().preventDefault();
        //Xrm.Page.context.getEventArgs.preventDefault();
      }
    }
  } catch (err) {
    alert(err.message);
  }
}

只要文本框以有效的电子邮件地址(即。test@example.com)-您需要在表达式的末尾包含字符串字符$的末尾,以检查匹配项后面是否没有其他字符:

/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+'.([a-zA-Z])+([a-zA-Z])+$/;

除此之外,正则表达式还可以稍微精简一点。我建议进行以下编辑以获得相同的评估结果:

/^[a-zA-Z0-9_.-]+@[a-zA-Z0-9_.-]+'.[a-zA-Z]{2,}$/;

另一个建议是,在通过表达式运行EmailField中的文本之前,对其进行修剪,因为字段开头或结尾的空格或其他空白字符会导致测试失败。