为了账号安全,请及时绑定邮箱和手机立即绑定

电子邮件地址的 JavaScript 正则表达式,限制为 40 个字符

电子邮件地址的 JavaScript 正则表达式,限制为 40 个字符

宝慕林4294392 2023-03-18 16:07:23
我正在尝试将电子邮件地址的正则表达式与以下条件相匹配。字符串不得超过 40 个字符。字符串匹配 emailid@domain 格式,其中 emailid 和域都只包含小写英文字母、数字和句点 (.)域应至少包含一个句点 (.)电子邮件 ID 和域都不能包含任何连续的句点 (.)到目前为止,我只能用这个正则表达式满足第二个条件:/^[a-z0-9.]+@[a-z0-9.-]+\.[a-zA-Z]{2,6}$/任何想法,我怎样才能完成其他条件?
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

您可以使用单个否定前瞻来确保字符串不包含 41 个字符。

如果您重复不带句点的字符类 1 次或多次,然后有选择地重复以句点开头的组,则会阻止匹配连续的句点。

这部分\.[a-zA-Z]{2,6}$已经确保至少有一个周期。

^(?!.{41})[a-z0-9]+(?:\.[a-z0-9]+)*@[a-z0-9-]+(?:\.[a-z0-9-]+)*\.[a-zA-Z]{2,6}$

请注意,因为-仍然在这个字符类中[a-z0-9-]+,连续的连字符仍然是可能的。如果你不想允许这个,你可以使用

^(?!.{41})[a-z0-9]+(?:\.[a-z0-9]+)*@[a-z0-9]+(?:[.-][a-z0-9-]+)*\.[a-zA-Z]{2,6}$


查看完整回答
反对 回复 2023-03-18
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

使用积极的前瞻:

/(?=^[a-z0-9.]+@[a-z0-9.-]+\.[a-zA-Z]{2,6}$)(?=^.{1,40}$)/

"(?=match this expression)(?=match this too)(?=oh, and this)"


查看完整回答
反对 回复 2023-03-18
  • 2 回答
  • 0 关注
  • 226 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信