gpt4 book ai didi

java - 在 Java 中使用正则表达式检查密码

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:17:38 25 4
gpt4 key购买 nike

我的应用程序具有检查密码的功能。我需要得到这个场景:

密码长度10~32。

它必须是以下两者的组合:

  • 字符和数字
  • 字符和特殊字符
  • 数字和特殊字符

应用程序中的当前代码:

private boolean isSpecialMixedText(String password)
{
String number = "[0-9]";
String english = "[a-zA-Z]";
String special = "[!@#\\$%^&*()~`\\-=_+\\[\\]{}|:\\\";',\\./<>?£¥\\\\]";

Pattern numberPattern = Pattern.compile(number);
Matcher numberMatcher = numberPattern.matcher(password);

Pattern englishPattern = Pattern.compile(english);
Matcher englishMatcher = englishPattern.matcher(password);

Pattern specialPattern = Pattern.compile(special);
Matcher specialMatcher = specialPattern.matcher(password);
return numberMatcher.find() && englishMatcher.find() || specialMatcher.find();
}

请帮助我使组合正常工作

最佳答案

实际上,正则表达式看起来不错。问题出在这个语句中:

return numberMatcher.find() && englishMatcher.find() || 
specialMatcher.find();

它实际上需要是这样的:

boolean n = numberMatcher.find();
boolean e = englishMatcher.find();
boolean s = specialMatcher.find();
return (n && e) || (n && s) || (e && s);

我同意@adelphus 的评论。您决定可接受哪些密码的规则非常以英语为中心。

关于java - 在 Java 中使用正则表达式检查密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33065731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com