编写用于密码验证的正则表达式

时间:2014-10-20 21:40:35

标签: java regex eclipse

我在Eclipse中编写一个Java程序,用于检查输入的密码是否符合条款和条件,是否为有效密码。

条款和条件是:

  1. 密码必须至少包含一个大写字母(任意位置)
  2. 密码必须包含至少一个LowerCase Letter(任意位置)
  3. 密码必须包含数字(任意位置)
  4. 密码长度必须至少为6个字符。

2 个答案:

答案 0 :(得分:2)

我建议你避免复杂的正则表达式,只是迭代密码中的字符。用它的'来测试每个条件。相应的Character实用方法,如

public static boolean isPasswordValid(String pw) {
    if (pw != null && pw.length() > 5) {
        boolean oneUpper = false;
        boolean oneLower = false;
        boolean oneDigit = false;
        for (char ch : pw.toCharArray()) {
            if (Character.isUpperCase(ch)) {
                oneUpper = true;
            } else if (Character.isLowerCase(ch)) {
                oneLower = true;
            } else if (Character.isDigit(ch)) {
                oneDigit = true;
            }
        }
        return oneUpper && oneLower && oneDigit;
    }
    return false;
}

答案 1 :(得分:-1)

您可以使用以下正则表达式来完成您的要求:

    如果字符串中的任何位置有大写字母,
  1. [A-Z]将匹配 如果字符串
  2. 中的任何位置有小写字母,
  3. [a-z]将匹配 如果字符串
  4. 中有任何位数,
  5. [0-9]将匹配 如果一行中有六个(或更多)字符,
  6. .{6}将匹配
  7. 要匹配所有您的要求,请检查以上各项是否与&&结果一致。