-1

我在使用正则表达式验证至少包含 5 个字符的密码时遇到了一些问题。

我正在使用一个非常简单的正则表达式,如下所示:

String PASSWORD_PATTERN_MIN_CHARS = "(?=.*[a-z|A-Z]{5,}).{8,}";

正则表达式说密码必须包含最少 5 个字符,最少 8 个字符将是密码长度。

它适用于"aasaT124"字符串。但失败了"aa12sa4T"

显然,只有当字符是连续的时,正则表达式才匹配。

验证失败的字符串也至少包含 5 个字符。

4

3 回答 3

1

此正则表达式表示字符串必须包含 5 个字母和至少 8 个字符(字母 + 数字)

(?=(.*[a-zA-Z]){5})^[0-9a-zA-Z]{8,}$
于 2013-08-05T07:10:13.147 回答
1

试试这个

(/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[0-9a-zA-Z]{5,}.{8,}$/)
于 2013-08-05T07:06:40.070 回答
1

我推荐一个特殊用途的库,比如vtpassword。您可以定义密码必须匹配的规则。

List<Rule> rules = new ArrayList<>();
rules.add(new LengthRule(8, 99));
rules.add(new LowercaseCharacterRule(5));
PasswordValidator validator = PasswordValidator(rules);

RuleResult ruleResult =
  validator.validate(new PasswordData(new Password("aasaT124")));
if (ruleResult.isValid()) {
  // OK
}
于 2013-08-05T07:12:26.237 回答