Javascript 电子邮件子域不能以连字符开头或结尾,也不能有两个连字号

Javascript 电子邮件子域不能以连字符开头或结尾,也不能有两个连字号,javascript,regex,Javascript,Regex,我有一个电子邮件域需要通过以下场景的情况 域: 域可以由以句点分隔的子域组成。 每个子域必须至少有2个字符。 子域可以是字母数字,也可以包含连字符。 子域不能以连字符开头或结尾,也不能一行有两个。 不接受子域 foobar@-fear.com foobar@fear-网站 foobar@fear.com- foobar@fear.co-m foobar@f.com foobar@fear.c 接受 foobar@fea-r、 com foobar@fear.co-m 福-bar@fear.com

我有一个电子邮件域需要通过以下场景的情况

域:

域可以由以句点分隔的子域组成。 每个子域必须至少有2个字符。 子域可以是字母数字,也可以包含连字符。 子域不能以连字符开头或结尾,也不能一行有两个。 不接受子域

foobar@-fear.com foobar@fear-网站 foobar@fear.com- foobar@fear.co-m foobar@f.com foobar@fear.c 接受

foobar@fea-r、 com foobar@fear.co-m 福-bar@fear.com 福--bar@fear.com foobar--@fear.com 例如:

Email- foobar@mahi.co.in
Username - foobar
Domain - mahi.co.in


var emailIdExp = ^[A-Za-z0-9._-]+@([A-Za-z0-9-]+\.)*[A-Za-z0-9-]+\.[A-Za-z0-9-]{2,}$

您可以尝试使用该正则表达式:

^[\w-_\.]+@\w+(-\w+)*(\.\w+(-\w+)*)+$
例如:

尽管如此,以下条件仍不满足:

每个子域必须至少有2个字符。 您可以尝试以下方法:

^[\w.-]+@[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-]{2,}$/foo的预期结果是什么-bar@fear.com?根据OP更新,两个foo-bar@fear.com还有福--bar@fear.com应该匹配。@PM77-1是,它正在通过。现在唯一的约束是至少2个字符,其中一个失败。