在我的网络应用程序中,我有以下要求。当用户第一次注册时,我在设置密码时遇到以下限制。
任何人都可以澄清这是否可以通过正则表达式完成,还是通过Java实现更好。如有可能,有人可以提供示例代码吗?
答案 0 :(得分:1)
有这么多限制,我认为你应该使用Java验证这一点 您可以使用Apache Commons的StringUtils来帮助您。
答案 1 :(得分:1)
你的问题似乎很有趣,所以我想我会试一试。这应该做你想要做的事,虽然我没有彻底测试它。那里可能有更简单的解决方案。
private static boolean validatePW(String pw) {
if(pw.length() == 6){
int pwInt = Integer.MIN_VALUE;
try{
pwInt = Integer.parseInt(pw);
char[] values = pw.toCharArray();
boolean asc = true;
boolean dec = true;
int[] map = new int[10];
map[values[0]-48] = 1;
for(int i = 1; i < values.length; i++){
asc = asc && values[i] - 1 == values[i-1];
dec = dec && values[i] + 1 == values[i-1];
map[values[i]-48] ++;
if(map[values[i]-48] == 3){return false;}
}
if(asc || dec){
return false;
} else {
return true;
}
} catch(NumberFormatException e){
return false;
}
}
return false;
}