1. 程式人生 > >Android登陸註冊的手機號碼匹配

Android登陸註冊的手機號碼匹配

1、背景介紹

        在做開發的時候,經常會有一些應用,需要使用者的手機號碼註冊使用,避免任意輸入一個不是手機號碼的11位數字註冊,會使用正則表示式匹配。但是在網上找了很多匹配表示式,發現漏了一些,經過查詢,發現是現在4G的使用者,開始了新的手機號段。

2、表格

        這裡有一個表格,是目前中國的手機號碼欄位,如下所示:


3、正則

       在做java開發的時候,我們需要使用正則表示式匹配資料,程式碼如下:

/**
     * 手機號碼是否合法
     * @param phoneNumber 手機號碼
     * @return true 合法
     */
    public static boolean isRightPhone(String phoneNumber){
        /**
         * 國內手機號碼驗證規則:
         * 移動:134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
         * 聯通:130、131、132、152、155、156、185、186
         * 電信:133、153、180、189、(1349衛通)
         * 新增的4G手機號段:
         * 中國電信分到新號段170,177,聯通分到了176,移動分到了178號段.
         */
        String regExp = "^((13[0-9])|(14[5,7])|(15[^4,\\D])|(17[0,6-8])|(18[0-9]))\\d{8}$";
        Pattern p = Pattern.compile(regExp);
        Matcher m = p.matcher(phoneNumber);
        return m.matches();
    }