嗨,我是非常新的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)
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)
您可以设置此处允许的任何符号
| 归档时间: |
|
| 查看次数: |
28456 次 |
| 最近记录: |