首页 > 解决方案 > 具有特殊要求的 Javascript 电子邮件验证

问题描述

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

电子邮件:包含有效的电子邮件地址(如果电子邮件地址的格式[name]@[domain]; [name]由字母(a to z, both lower and upper cases)、数字和点组成,则认为电子邮件地址有效;但是,两个点不能彼此相邻,并且点不能位于开头或开头end of [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

解决方案


你可以试试这个:

/^([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}$/

推荐阅读