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

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

一、驗證手機號工具

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

    /**
     * 手機號號段校驗,
     第1位:1;
     第2位:{三、四、五、六、七、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;
    }

二、驗證姓名這裏驗證姓名,用戶能夠在輸入框內輸入任何東西,可是在點擊驗證的按鈕時,會調這個方法。code

驗證規則是:姓名由漢字或漢字加「」、"·"組成,並且,「點」只能有一個,「點」的位置不能在首位也不能在末尾,只有在漢字之間纔會驗證經過。blog

    /**
     * 驗證輸入的名字是否爲「中文」或者是否包含「·」
     */
    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;
            }
        }
    }

三、驗證身份證號class

驗證身份證號方法

規則是:由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返回static

相關文章
相關標籤/搜索