我正在用正则表达式验证电子邮件地址。我想测试以下条件:
名称、符号@中至少有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}$
演示