美文网首页Android
最新验证手机号正则表达式

最新验证手机号正则表达式

作者: 节庆007 | 来源:发表于2019-03-15 14:04 被阅读0次

    国内手机号目前涵盖号段包括 移动、联通、电信、虚拟运营商

    目前已知的号段

    1. 移动号段: 134 135 136 137 138 139 147 148 150 151 152 157 158 159 165 172 178 182 183 184 187 188 198
    2. 联通号段: 130 131 132 145 146 155 156 166 170 171 175 176 185 186
    3. 电信号段: 133 149 153 170 173 174 177 180 181 189 191 199
    4. 虚拟运营商: 170
        /**
         * 判断是否为手机号
         *
         * @param mobileNums
         * @return
         */
        public static boolean isMobileNO(String mobileNums) {
            /**
             * 判断字符串是否符合手机号码格式
             * 移动号段:   134 135 136 137 138 139 147 148 150 151 152 157 158 159  165 172 178 182 183 184 187 188 198
             * 联通号段:   130 131 132 145 146 155 156 166 170 171 175 176 185 186
             * 电信号段:   133 149 153 170 173 174 177 180 181 189  191  199
             * 虚拟运营商: 170
             * @param str
             * @return 待检测的字符串
             */
            // "[1]"代表下一位为数字可以是几,"[0-9]"代表可以为0-9中的一个,"[5,7,9]"表示可以是5,7,9中的任意一位,[^4]表示除4以外的任何一个,\\d{8}"代表后面是可以是0~9的数字,有8位。
            String telRegex = "^((13[0-9])|(14[5,6,7,9])|(15[^4])|(16[5,6])|(17[0-9])|(18[0-9])|(19[1,8,9]))\\d{8}$";
            if (TextUtils.isEmpty(mobileNums))
                return false;
            else
                return mobileNums.matches(telRegex);
        }
    

    如果你觉得手机号前两位就是13、14、15、16、17、18、19,后面的都不确定,你可以这样设置正则表达式:

    String telRegex = "^((13)|(14)|(15)|(16)|(17)|(18)|(19))\\d{9}$";
    

    如果你觉得手机号第一位就是1,后面的都不确定,你可以这样设置正则表达式:

    String telRegex = "^(1)\\d{10}$";
    

    这个比较灵活,可以根据自身需求去选择。

    相关文章

      网友评论

        本文标题:最新验证手机号正则表达式

        本文链接:https://www.haomeiwen.com/subject/gnmlmqtx.html