正则表达式电子邮件验证长度

时间:2012-11-16 09:47:56

标签: java regex email

我在java中有以下用于电子邮件验证的正则表达式

^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@([a-zA-Z0-    9!#$%&'*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])$  

我想查看电子邮件不能超过255个字符,我该怎么做? 谢谢

5 个答案:

答案 0 :(得分:6)

保持简单。

if (yourString.length() <= 255 && yourString.matches(YOUR_REGEX))

答案 1 :(得分:4)

此正则表达式适用于所有可能的电子邮件模式和不同的域。

abc@gmail.com
abc.de@gmail.in
abc.15@gmail.com
abc@def.technology

各自的正则表达式是:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

答案 2 :(得分:1)

除了简单的健全性检查之外,我不会使用正则表达式(它有&#39; @&#39;以及看起来像TLD的东西),还有一个简单的字符串长度检查。

完全合规邮件地址的正则表达式为immense。你真的不想去那里。

答案 3 :(得分:1)

如果你真的想扩展有关长度的Regexp,你可以添加一个这样的超前表达式:

^(?=.{255}$)

结果:

=> ^(?=.{255}$)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+............

答案 4 :(得分:0)

完成Zhonk的回应: ^(?= {6255} $。)[A-Z0-9a-Z ._%+ - ] + @ [A-ZA-Z0-9 .-] + [A-ZA-Z] {2,6- }