Android 判断手机号码、手机号码格式验证(正则表达式验证)

直接上代码:

 /**
     * 验证手机号码是否合法
     * 176, 177, 178;
     * 180, 181, 182, 183, 184, 185, 186, 187, 188, 189;
     * 145, 147;
     * 130, 131, 132, 133, 134, 135, 136, 137, 138, 139;
     * 150, 151, 152, 153, 155, 156, 157, 158, 159;
     * 
     * "13"代表前两位为数字13, 
     * "[0-9]"代表第二位可以为0-9中的一个,
     * "[^4]" 代表除了4
     * "\\d{8}"代表后面是可以是0~9的数字, 有8位。
     */
    public static boolean isMobileNumber(String mobiles) {
        String telRegex = "^((13[0-9])|(15[^4])|(18[0-9])|(17[0-8])|(147,145))\\d{8}$";
        return !TextUtils.isEmpty(mobiles) && mobiles.matches(telRegex);
    }

当然如果考虑到号段是在变化的,需要后台配置,前台只做个11位的判断,也可以,可以直接修改下规则:

//只做11位判断,号段交给后台去判断
        String telRegex2 = "^\\d{11}$";
/**
 * 判断是否是11位手机号
 */
fun String.isMobile(): Boolean {
    //第一位1开头,后边10位是数字
    val pattern = Pattern.compile("1\\d{10}")
    val matcher = pattern.matcher(this)
    return !TextUtils.isEmpty(this) && matcher.matches()
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,726评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 通过"!!""将非布尔型数据隐式转换成布尔型(注意!运算是用于将布尔型的操作数的逻辑非运算) 通过使用'+'运算符...
    JUN_API阅读 500评论 0 0
  • 只是她知道, 有些东西是可遇而不可求的。 她从楼上下来的时候,天已经黑透了。初秋的马路上,陪伴着她的,只有路边一闪...
    未见南墙阅读 264评论 0 1
  • 起点学院|教你如何做好APP国内外运营推广 Hello , 大家好 ! 人人都是产品经理起点学院的小伙伴们,欢迎来...
    运营疯狂官阿豪阅读 2,549评论 1 8