javascript - 具有特殊要求的 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 还是很陌生,我的老师也不太擅长教学。所以我真的很感激一些关于我的代码有什么问题的建议/提示。
解决方案
你可以试试这个:
/^([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}$/
推荐阅读
- c# - Linq 查询总和到新列表
- python - 在 Pandas 中将“无数据”字符串设置为 Nan
- java - 将 JS 数组作为 List<> 传递给 Spring MVC 控制器
- flask - 多对多关系烧瓶sqlalchemy
- java - 应用程序启动方法中的异常。带有 Maven 的 OpenJFX 13
- elasticsearch-dsl-py - 按字段排序
- kubernetes - 如何自动化 Kubernetes 配置?
- sql - 带有 LEFT JOIN 的 SQL 请求无法找到数据
- button - Squish:当按钮不在当前视图中时如何触发按钮动作
- r - 使用 colorRampPalette 合并调色板并使用传单进行绘图