首页 > 解决方案 > 如何在 TextInputLayout Android 中实现这样的密码错误?

问题描述

密码错误

这就是我想要实现的。请帮助我处理第三个错误的正则表达式。

标签: androidandroid-layoutandroid-textinputlayout

解决方案


试试这个解决方案:

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();
        }

使用它:

if(isValidPassword(password)){ //password valid}

对于空字段:

if (password.getText().toString().isEmpty() || reEnteredPassword.getText().toString().isEmpty()) {
//Fieds empty error message

少于 8 个字符:

if ((password.getText().toString().length() < 8) || (reEnteredPassword.getText().toString().length() < 8)) {
// less than 8 characters error message
}

没有特殊字符:

if (!password.getText().toString().matches( "^(?=.*[0-9])(?=.*[a-z])(?=.*[!@#$%^&*+=?-]).{8,15}$") || !reEnteredPassword.getText().toString().matches( "^(?=.*[0-9])(?=.*[a-z])(?=.*[!@#$%^&*+=?-]).{8,15}$")){
//not having special characters error message
}

推荐阅读