Javascript电子邮件特殊验证

Javascript电子邮件特殊验证,javascript,email-validation,Javascript,Email Validation,我正在尝试对电子邮件字段进行一些验证,但是我有一些“特殊”要求,基本上,当您插入电子邮件地址时,它的行为必须与Outlook非常相似 因此,我的测试场景如下:- test@test.com test1@test.com--应该无效 ;J、 Smith--应删除;并保留姓名和电子邮件地址以及有效的 J,Smith J,Smith--应该无效,因为没有“;”中间 J,史密斯;J、 Smith--应该是有效的 J,史密斯;J、 Smith--也应有效 所以我想出了“基本”正则表达式 在验证电子邮件地址

我正在尝试对电子邮件字段进行一些验证,但是我有一些“特殊”要求,基本上,当您插入电子邮件地址时,它的行为必须与Outlook非常相似

因此,我的测试场景如下:-

  • test@test.com test1@test.com
    --应该无效

  • ;J、 Smith
    --应删除;并保留姓名和电子邮件地址以及有效的

  • J,Smith J,Smith
    --应该无效,因为没有“;”中间

  • J,史密斯;J、 Smith
    --应该是有效的

  • J,史密斯;J、 Smith
    --也应有效

  • 所以我想出了“基本”正则表达式

    在验证电子邮件地址时,它工作正常


    然而,我需要一些东西来同时检查显示名和电子邮件地址,检查它们之间是否也有分号也很重要,因为这是它有效的原因。如果只有一个空格,那么它是无效的。

    Ok设法找到了一个正则表达式,它将确定我是否有多封电子邮件在一个字符串中,但是我仍然在寻找一个正则表达式,该正则表达式还将包括电子邮件之外的显示名称,要确定多封电子邮件在stringex中的多封电子邮件,正则表达式如下:-([a-zA-Z0-9\-\.]+)@(([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.+](a-zA-Z0-9\-]+\.+)(([a-zA-Z]{2,4}.[0-9]{1,3})(])(\s*.\s*.\s*.\s*$)+我做了一个快速修复,在字符串上用“@”分割,如果数组大于2,我希望能找到一个更优雅的正则表达式!
    const _validEmail = new RegExp(/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/);