【发布时间】:2015-06-11 07:51:58
【问题描述】:
我有以下代码:
String sPassword = pssfldLoginPsw.getText();
boolean match = sPassword.matches("[a-zA-Z+]+[0-9+]+[&@!#+]+");
if (match==false)
{
System.out.println("Didn't Work");
}
if (match==true)
{
System.out.println("Work");
}
如果我输入H1@ 或G2!,效果会很好。但是,如果我输入!G2 或G@5 之类的内容,则会设置match=false。由于该字段需要包含字母、数字和非数字字符,但它应该能够以任何顺序排列它们。我该怎么做?
【问题讨论】:
-
我建议不要使用一个正则表达式。请尝试其中的 3 个。
-
您希望允许的可能值是什么?我应该能够给你一个准确的正则表达式,但我需要知道你想要允许什么。例如,您当前的正则表达式仅允许在密码末尾使用通配符。所以拒绝中间有通配符的密码是正确的。
-
我希望它能够验证,只要它在密码它将被接受,否则我不希望它被接受。 @Ractoc
-
我还希望在其中的任何位置都允许对每种类型进行多次重复。例如 P@ssW0rd360!