Javascript正则表达式否定-电子邮件正则表达式的否定周期

Javascript正则表达式否定-电子邮件正则表达式的否定周期,javascript,regex,email,regex-negation,Javascript,Regex,Email,Regex Negation,我希望现有电子邮件正则表达式在@之前输入句点(“.”)时失败 这是我现在拥有的正则表达式: ^[a-zA-Z]+[a-zA-Z0-9.]+@domain.com$ 这些措施应通过: test.a@domain.com a.test@domain.com 但这些不应该: .test@domain.com test.@domain.com 第一个以句号开头的案例已处理,但第二个案例未处理。我会尝试: ^[a-zA-Z]+[a-zA-Z0-9.]*[a-zA-Z0-9]+@domain.com$

我希望现有电子邮件正则表达式在@之前输入句点(“.”)时失败

这是我现在拥有的正则表达式:

^[a-zA-Z]+[a-zA-Z0-9.]+@domain.com$
这些措施应通过:

test.a@domain.com
a.test@domain.com
但这些不应该:

.test@domain.com
test.@domain.com
第一个以句号开头的案例已处理,但第二个案例未处理。

我会尝试: ^[a-zA-Z]+[a-zA-Z0-9.]*[a-zA-Z0-9]+@domain.com$

试试这个正则表达式:

  • [\w.+-]*
    匹配任意数量的字母数字字符、
    +
    -
  • [^\W.]
    匹配任何非字母数字字符或
    字符(表示任何可接受的字符,但
  • @domain\.com
    匹配电子邮件的其余部分,根据需要更改域或使用
    @\w\.\w+
    匹配大多数域。(匹配所有域更为复杂,请参阅电子邮件匹配正则表达式的更完整示例)

这应该可以在@符号前不需要两个或更多字符

^[a-zA-Z][a-zA-Z0-9]*(?:\.+[a-zA-Z0-9]+)*@domain\.com$
下面是它的分解方式:

^确保从字符串的开头开始
[a-zA-Z]第一个字符必须是字母
[a-zA-Z0-9]*…可能后跟任意数量的字母或数字。
(?:启动非捕获组
\.+匹配任何时段。。。
[a-zA-Z0-9]+…后跟至少一个字母或数字
)*整个组可以出现零次或多次,以
偏移内部的+量词。否则
需要一段时间
@domain\.com$匹配字符串的其余部分。在这一点上
我们只允许在允许的时间段后加上at
至少一个数字或字母

@dan08如果它是方括号,那么它就失去了它的特殊意义。真的!我不知道。注释被撤销。@dan08是的-大多数字符在方括号中失去了它们的特殊含义。最明显没有的是
[]
(您仍然需要转义它们),以及指示字符范围的
-
。但是,如果放在开头或结尾,则将其视为破折号。请注意,这要求@前面至少有两个字符,因此
a@domain.com例如,
将失败。这可能是你想要的,也可能不是你想要的。是的,我试着保持这个接近他原来的正则表达式,因为他似乎希望它以字母开头。哎呀,我没有注意到它也不能以数字开头。无论如何,这并不是一个真正的批评,只是一个关于表达的确切含义/含义的注释。