Android 正則表達式 的應用

在應用app登錄的時候通常都會讓我們匹配一系列規則,然後通過前端規則驗證,以後發送給後臺,並完成登錄,註冊,等功能。


那麼記錄今天看到的正則的應用:


  正則表達式之:驗證用戶名

public static final String REGEX_USERNAME =”^[a-zA-Z]\\w{5,17}$";


 正則表達式之:驗證密碼

public static final String REGEX_PASSWORD = "^[a-zA-Z0-9]{6,16}$";


 正則表達式之:驗證手機號

public static final String REGEX_MOBILE = "^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$"


正則表達式之:驗證郵箱

public static final String REGEX_MEAIL = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$"


那麼校驗用戶名方法:

public static boolean isAccount(String account){

return Patter.matches(REGEX_USERNAME,account);

}

/**
 * 校驗密碼
 *
 * @param password
 * @return 校驗通過返回true,否則返回false
 */
public static boolean isPassword(String password) {
    return Pattern.matches(REGEX_PASSWORD, password);
}

/**
 * 校驗手機號
 *
 * @param mobile
 * @return 校驗通過返回true,否則返回false
 */
public static boolean isMobile(String mobile) {
    return Pattern.matches(REGEX_MOBILE, mobile);
}

/**
 * 校驗郵箱
 *
 * @param email
 * @return 校驗通過返回true,否則返回false
 */
public static boolean isEmail(String email) {
    return Pattern.matches(REGEX_EMAIL, email);
}


//校驗用戶名
public static boolean checkAccount(String account, EditText Account) {

    if (!isAccount(account)) {
        Account.setError("親,請輸入正確的用戶名!");
        return false;
    }

    return true;
}

//校驗手機號
public static boolean checkNumber(String number, EditText Number) {

    if (!isMobile(number)) {

        Number.setError("親,這是你的手機號麼!");
        return false;
    }

    return true;
}

//校驗手機號
public static boolean checkNumber(String number, EditText Number) {

    if (!isMobile(number)) {

        Number.setError("親,這是你的手機號麼!");
        return false;
    }

    return true;
}

//校驗郵箱
public static boolean checkEmail(String email, EditText Email) {

    if (!isEmail(email)) {

        Email.setError("親,這那是郵箱呀!");
        return false;
    }

    return true;
}

//校驗密碼
public static boolean checkPassword(String password, EditText Password) {

    if (!isPassword(password)) {

        Password.setError("親,密碼格式不對哦!");
        return false;
    }

    return true;
}

//校驗兩個密碼是否相同
public static boolean checkIsSamePassword(String password, String Password, EditText mConfirmPassword) {

    //防止越界
    if (password.length() > Password.length()) {

        mConfirmPassword.setTextColor(Color.RED);

        return false;
    }

    for (int i = 0; i < password.length(); i++) {

        if (password.charAt(i) != Password.charAt(i)) {

            mConfirmPassword.setTextColor(Color.RED);
            return false;
        }
    }

    mConfirmPassword.setTextColor(Color.BLACK);
    return true;

}

//判斷是否具備註冊的條件
public static boolean canRegister(EditText mUserName, EditText mPassword, EditText mConfirmPassword, int what) {

    String userName = mUserName.getText().toString().trim();
    String password = mPassword.getText().toString().trim();
    String confrimPassrod = mConfirmPassword.getText().toString().trim();

    if (what == STATUS_ACCTOUNT) {

        if (!checkAccount(userName, mUserName)) {

            return false;
        }

    }

    if (what == STATUS_EMAIL) {

        if (!checkEmail(userName, mUserName)) {

            return false;
        }
    }

    if (what == STATUS_MOBILE) {

        if (!checkNumber(userName, mUserName)) {

            return false;
        }
    }

    if (!checkPassword(password, mPassword)) {

        return false;
    }

    Log.e("this", password + "||" + confrimPassrod);

    if (!checkIsSamePassword(confrimPassrod, password, mConfirmPassword) || !password.equals(confrimPassrod)) {

        mConfirmPassword.setError("親,這個對不上號哦!");

        return false;
    }

    return true;
}


以上就是驗證用戶登錄判斷用戶郵箱,手機,密碼是否通過正則規則,通過返回true,否則false;


這樣以後我們自己判斷過以後,纔會把通過驗證的手機,密碼,郵箱等發送給後臺。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章