我正在使用正则表达式验证电子邮件地址。我想测试以下条件:
名称中最少3个字符,符号@,域名第一部分最少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
不知道我RE的最后一部分有什么问题。
任何意见都将受到赞赏。
答案 0 :(得分:2)
您可以使用以下正则表达式:
^(?!.*([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})
- 这是一个负向前瞻,确保所有字符都不会连续三次重复。
除了从第二个字符类中删除.
之外,其余的正则表达式都是相同的。
如果你想在最后.
之后禁止重复的字符,那么你可以改用以下字符:
^[A-Za-z0-9._%+-]{3,}\@[A-Za-z0-9-]{3,}\.(?!([A-Za-z0-9])\1{3})[A-Za-z]{2,4}$
答案 1 :(得分:0)
在最后一个点之后,这将不允许超过三个重复的字符
^[A-Za-z0-9._%+-]{3,}\@[A-Za-z0-9.-]{3,}\.(?:(?!(.)\1{3})[a-zA-Z]){2,4}$