RegEx 用于电子邮件验证,其中 @ 之前至少需要 2 个字符

Shi*_*hel 1 javascript regex

我正在尝试下面的 RegEx,它在@之前至少需要2 个字符

^([a-zA-Z])[^.*-\s](?!.*[-_.@]{2})(?!.\.{2})[a-zA-Z0-9-_.]+@([\w-]+[\w]+(?:\.[a-z]{2,10}){1,2})$

喜欢

不允许:aa.@co.kk.pp

不允许:aa..@co.kk.pp

不允许:aa@co.kk.pp

应该允许:aa@co.kk.pp

应该允许:aaa@co.kk.pp

应该允许:aa.s@co.kk.pp。(特殊字符之后@之前至少一个字符)

应该允许:aa.ss@co.kk.pp

应该允许:a@co.kk.pp

之前@只允许. _ -不连续的特殊字符(--)也不在开头。

我也试过下面的正则表达式,但没有运气

^[a-zA-Z)]([^.*-\s])(?!.*[-_.@]{2}).(?!.\.{2})[\w.-]+@([\w-]+[\w]+(?:\.[a-z]{2,10}){1,2})$

anu*_*ava 5

我建议保持简单的事情是这样的:

^([a-zA-Z][\w+-]+(?:\.\w+)?)@([\w-]+(?:\.[a-zA-Z]{2,10})+)$
Run Code Online (Sandbox Code Playgroud)

正则表达式演示

它绝不是一个全面的电子邮件验证器正则表达式,但它应该满足您的要求。

细节:

  • ^: 开始
  • (:开始捕获组#1
    • [a-zA-Z]: 匹配一个字母
    • [\w.+-]+: 匹配 1+ 个单词字符-+
    • (?:\.\w+)?: 匹配点后的选项部分
  • ):结束捕获组#1
  • @: 匹配一个 @
  • (:开始捕获组#2
    • [\w-]+: 匹配 1+ 个单词字符或 -
    • (?:\.[a-zA-Z]{2,10})+: 匹配一个点后跟 2 到 10 个字母。重复此组 1 次以上
  • ):结束捕获组#2
  • $: 结尾