Android 正則表達式驗證手機號、姓名(包含少數民族)、身份證號


最近項目中新增的功能,需要對手機號、姓名、身份證號等一些信息進行驗證,最好的方法是通過正則表達式來驗證,網上查了一些資料,寫了這幾個工具方法。

1、驗證手機號

規則:第一位只能是1,第二位為3-8中的數字,3-11位為任意的數字

    /**
     * 手機號號段校驗,
     第1位:1;
     第2位:{3、4、5、6、7、8}任意數字;
     第3—11位:0—9任意數字
     * @param value
     * @return
     */
    public static boolean isTelPhoneNumber(String value) {
        if (value != null && value.length() == 11) {
            Pattern pattern = Pattern.compile("^1[3|4|5|6|7|8][0-9]\\d{8}$");
            Matcher matcher = pattern.matcher(value);
            return matcher.matches();
        }
        return false;
    }

2、驗證姓名這里驗證姓名,用戶可以在輸入框內輸入任何東西,但是在點擊驗證的按鈕時,會調這個方法。

驗證規則是:姓名由漢字或漢字加“”、"·"組成,而且,“點”只能有一個,“點”的位置不能在首位也不能在末尾,只有在漢字之間才會驗證通過。

    /**
     * 驗證輸入的名字是否為“中文”或者是否包含“·”
     */
    public static boolean isLegalName(String name){
        if (name.contains("·") || name.contains("")){
            if (name.matches("^[\\u4e00-\\u9fa5]+[·•][\\u4e00-\\u9fa5]+$")){
                return true;
            }else {
                return false;
            }
        }else {
            if (name.matches("^[\\u4e00-\\u9fa5]+$")){
                return true;
            }else {
                return false;
            }
        }
    }

3、驗證身份證號

驗證身份證號

規則是:由15位數字或18位數字(17位數字加“x”)組成,15位純數字沒什么好說的,18位的話,可以是18位純數字,或者17位數字加“x”

    /**
     * 驗證輸入的身份證號是否合法
     */
    public static boolean isLegalId(String id){
        if (id.toUpperCase().matches("(^\\d{15}$)|(^\\d{17}([0-9]|X)$)")){
            return true;
        }else {
            return false;
        }
    }

以上正則表達式驗證結果,通過true和false返回


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM