日期:2014-05-20  浏览次数:20766 次

java正则验证邮箱
Java code

String mail="fs@d.com";
boolean strCheck=mail.matches("^\\S+@\\S+\\.\\S+$");
//我想控制这个邮箱总的长度在8个字符以内
boolean strCheck=mail.matches("^(\\S+@\\S+\\.\\S+)[color=#FF0000]{5,8}[/color]$");
//这样加了以后 验证结果就不正确了



求解释 谢谢

------解决方案--------------------
长度判断为什么一定要使用正则?这样不行吗
boolean strCheck=mail.length()==8 && mail.matches("^\\S+@\\S+\\.\\S+$");


如果非要作用正则,自己排列组合
String regex = "^(\\S{1}@\\S{1}\\.\\S{4}|\\S{1}@\\S{2}\\.\\S{3}|...)$";
...省略了,就是自己按照个数分配到各个地方
\\S表示非标点字符,+表示1次或多次,{n}表示n次
所以要用正则控制长度,就自己在每个\\S处按排列组合分配字符个数,显然还不如上面直接判断长度来的快