0
                if (password1.length() >= 15){          
                    final String PasswordPattern = "^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])[0-9A-Za-z]{15,}$";

                    Pattern pattern = Pattern.compile(PasswordPattern);
                    Matcher matcher = pattern.matcher(password1);   

                    if(matcher.matches() == true){                      

                        if (password1.equals(password2)){
                            SavePreferences(password1.toString());
                            //Intent intent = new Intent(LockAppActivity.this, ScreenLockActivity.class);
                            Intent intent = new Intent(LockAppActivity.this, PhoneNumActivity.class);
                            startActivity(intent);
                        }
                        else{
                            pass1.setText("");
                            pass2.setText("");
                            Toast.makeText(LockAppActivity.this,"Both passwords are not equal!",Toast.LENGTH_SHORT).show();
                        }
                    }

我希望用户输入至少 15 个字符的密码,必须由大写和小写字母、数字和符号组成。但我只知道如何用大写字母和小写字母和数字创建图案...如何在图案中包含所有符号...请检查我的图案代码部分...谢谢

4

3 回答 3

2

您可以添加该部分(?=.*(\W|_))来检查除字母数字(AZ、az、0-9)符号之外的任何内容。或者,您可以指定一组符号字符,例如(?=.*[\.\*]). 如果这样做,请将 的内容替换为[]您想要允许的所有字符,在每个具有正则表达式函数的字符之前使用反斜杠。(该示例显示了允许两个字符.和. 的部分*。)

然后,您需要顶部更新计算出现次数的部分。由于我们现在正在处理所有字符,因此我们可以将 替换为[0-9A-Za-z].留下我们:^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*(\W|_)).{15,}$。将单个替换为\两个,\\因为您将其放置在 Java 字符串中。

请记住,Android 键盘可能会有所不同,因此不能保证所有键盘都具有相同的符号。

于 2012-05-17T18:15:13.893 回答
1

它只是你想要的例子。我在我的项目中使用 struts 完成了这项工作。它满足您的需求。您还可以添加更多条件。也看到这个...... http://www.asciitable.com/

 if (getNewpassword() != null) {
                    int s;
                    for (int i = 0; i < getNewpassword().length(); i++) {
                        s = (int) getNewpassword().charAt(i);
                        if ((s>=33 && s<=64 )&&(s>=127&&s<=65)) {
                        }
    else
    {
                            errors.add("newpassword1", new ActionMessage("errors.notpwd", "must contains A-Z,a-z and any symbol"));
    }
                    }
                }
于 2012-05-17T18:48:15.390 回答
0

您可能会发现这个对另一个问题的回答很有用。我不确定这个密码约束是否与您的完全相同,但它似乎足够相似,可能会有所帮助。

https://stackoverflow.com/a/372​​1953/339428

于 2012-05-17T17:17:21.567 回答