如何在android中验证密码字段?

Kri*_*ish 12 android

嗨,我是非常新的Android和我的应用程序,我有更改密码页面的验证.

这意味着密码必须包含至少1个字母,1个数字和1个特殊字符的最少8个字符,为此我尝试了下面的代码,但它不起作用.

请帮我.

if(!isPasswordValidMethod(newPassword.getText().toString())){
           System.out.println("Not Valid");

                }else{

        System.out.println("Valid");
    }



     // Validate password
        private boolean isPasswordValidMethod(String password) {

            String yourString = newPassword.getText().toString();

            System.out.println("yourString is =" + yourString);

            boolean isValid = false;

            // ^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$
            // ^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{2,4}$

            String expression = "^(?=.*[A-Za-z])(?=.*\\\\d)(?=.*[$@$!%*#?&])[A-Za-z\\\\d$@$!%*#?&]{8,}$";
            CharSequence inputStr = password;

            Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
            Matcher matcher = pattern.matcher(inputStr);
            if (matcher.matches()) {
                System.out.println("if");
                isValid = true;
            }else{
                System.out.println("else");
            }
            return isValid;
        }
Run Code Online (Sandbox Code Playgroud)

mdD*_*oid 23

尝试遵循代码

 //*****************************************************************
public static boolean isValidPassword(final String password) {

    Pattern pattern;
    Matcher matcher;
    final String PASSWORD_PATTERN = "^(?=.*[0-9])(?=.*[A-Z])(?=.*[@#$%^&+=!])(?=\\S+$).{4,}$";
    pattern = Pattern.compile(PASSWORD_PATTERN);
    matcher = pattern.matcher(password);

    return matcher.matches();

}
Run Code Online (Sandbox Code Playgroud)

并将您的代码更改为此

   if(newPassword.getText().toString().length()<8 &&!isValidPassword(newPassword.getText().toString())){
        System.out.println("Not Valid");
      }else{
       System.out.println("Valid");
    }
Run Code Online (Sandbox Code Playgroud)


ley*_*yan 7

public static boolean isValidPassword(String s) {
            Pattern PASSWORD_PATTERN
                    = Pattern.compile(
                    "[a-zA-Z0-9\\!\\@\\#\\$]{8,24}");

            return !TextUtils.isEmpty(s) && PASSWORD_PATTERN.matcher(s).matches();
        }
Run Code Online (Sandbox Code Playgroud)

使用它,

if(isValidPassword(password)){ //password valid}
Run Code Online (Sandbox Code Playgroud)

您可以设置此处允许的任何符号