验证从Outlook复制的电子邮件地址

Validate email address copied from Outlook

本文关键字:电子邮件地址 复制 Outlook 验证      更新时间:2023-09-26

想要验证用户可以输入任何类型的电子邮件的电子邮件字段。当用户从Outlook复制粘贴的电子邮件地址时,使用regex进行验证检查失败。从Outlook复制的电子邮件地址看起来不一样

M, Karan <karan.m@outlook.com>

输入是m.karan@yahoo.com,M, Karan <karan.m@outlook.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);
}

当从outlook复制的邮件在input元素中可用时,这个逻辑就失效了。

期待帮助

1。解决方案像这样使用正则表达式(但具体来说这个正则表达式不是世界上最好的:)):

^(([a-zA-Z'-0-9,.: ])*<){0,1}(([^<>()'[']''.,;:'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,}))>{0,1}$

2。解决方案编写JavaScript函数解析电子邮件,然后使用正则表达式。下面是解析函数的示例:

function parseEmail(origin) {
    return origin.substring(origin.lastIndexOf('<')+1, origin.lastIndexOf('>'));
}