用于检查重复字符的电子邮件的正则表达式



我正在用正则表达式验证电子邮件地址。我想测试以下条件:

名称、符号@中至少有3个字符,域第一部分中至少有三个字符,一个点,不超过3个重复字符

我尝试了这个正则表达式,除了最后一个,它对所有情况都很好。

/^[A-Za-z0-9._%+-]{3,}@[A-Za-z0-9.-]{3,}.[A-Za-z]{2,4}$/

它不是在检查点(.)之后的重复字符(任何字符)

不正常:test@test.ccccom,test@test.coooom

好的:test@test.com

不知道我的回复最后一部分出了什么问题。

任何意见都将不胜感激。

您可以使用以下正则表达式:

^(?!.*([A-Za-z0-9])1{3})[A-Za-z0-9._%+-]{3,}@[A-Za-z0-9-]{3,}.[A-Za-z]{2,4}$

更改:

(?!.*([A-Za-z0-9])1{3})-这是一个负前瞻,确保没有任何字符在一行中重复超过三次。

除了从第二个字符类中删除了.之外,正则表达式的其余部分与原来相同。

RegEx演示


如果您想禁止最后一个.之后的重复字符,那么您可以使用以下内容:

^[A-Za-z0-9._%+-]{3,}@[A-Za-z0-9-]{3,}.(?!([A-Za-z0-9])1{3})[A-Za-z]{2,4}$

RegEx演示

这将不允许在最后一个点后重复超过三个字符,

^[A-Za-z0-9._%+-]{3,}@[A-Za-z0-9.-]{3,}.(?:(?!(.)1{3})[a-zA-Z]){2,4}$

演示

最新更新