在我的 Web 应用程序中,我有以下要求。用户首次注册时设置密码时,我有以下限制。
- 密码应包含 6 位数字。(例如 132715)
- 只能输入数字
- 不允许升序/降序数字(例如 123456、654321 - 不允许)
- 3 个(或更多)相同的数字不能重复(例如 121715、232254 - 不允许)。
任何人都可以澄清这是否可以通过正则表达式来完成,或者通过Java实现更好。如果可能的话,谁能给我一个示例代码?
在我的 Web 应用程序中,我有以下要求。用户首次注册时设置密码时,我有以下限制。
任何人都可以澄清这是否可以通过正则表达式来完成,或者通过Java实现更好。如果可能的话,谁能给我一个示例代码?
有这么多限制,我认为您应该使用 Java 验证这一点。
您可以使用Apache Commons 的StringUtils来帮助您。
你的问题似乎很有趣,所以我想我会试一试。这应该做你正在寻找它做的事情,尽管我没有彻底测试它。那里可能有更简单的解决方案。
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;
}