【问题标题】:Javascript Email Validation With Special Requirements具有特殊要求的 Javascript 电子邮件验证
【发布时间】:2021-05-06 08:42:46
【问题描述】:

我被要求编写一个 JS 代码来验证具有以下条件的电子邮件:

电子邮件:包含一个有效的电子邮件地址(如果电子邮件地址的格式为 [name]@[domain]; [name],则认为该地址是有效的,由字母 (a to z, both lower and upper cases)、数字和点组成;但是,两个点不能并排放置不能位于[name]的开头或结尾;[name]的长度至少为3;[domain]也由字母、数字和点组成;但是,至少应该有一个点在[ domain]; 类似于[name],两个点不能相邻,点不能位于[domain]的开头或结尾;最后,[domain]在最后一个点之后的部分只包含字母最小长度为 2,最大长度为 5;有效电子邮件地址示例:123@1.me, 1.2.3@domain.name, this.is.my.email@sub.sub.123.main; examples of invalid email addresses: .dot.at.the.beginning@test.com, name@domainnamewithoutdot, another@last.part.consists.num.b3r, there.is space@domain.name).

我曾尝试研究不同的正则表达式并且能够想出这个:

/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]{3,}+@[a-zA-Z0-9-]+(?:[A-Z0-9-]+\.)+[A-Z]{2,5}$/

不符合要求。我对 JS 还是很陌生,我的老师也不太擅长教学。所以我真的很感激一些关于我的代码有什么问题的建议/提示。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    你可以试试这个:

    /^([a-zA-Z0-9]+\.|[a-zA-Z0-9]+[_-]+[a-zA-Z0-9]+\.)*([a-zA-Z0-9]+|[a-zA-Z0-9]+[_-]+[a-zA-Z0-9]+)@(([a-zA-Z0-9]+|[a-zA-Z0-9]+[-]+[a-zA-Z0-9]+)\.)+[a-zA-Z]{2,5}$/
    

    【讨论】:

    • 匹配所有有效示例,不匹配所有无效示例。
    猜你喜欢
    • 2010-09-23
    • 2018-04-30
    • 1970-01-01
    • 2021-11-21
    • 2023-04-06
    • 2011-10-20
    • 2011-02-16
    • 1970-01-01
    • 2012-09-15
    相关资源
    最近更新 更多