一、规则说明

1、全国固定电话区号大体分两种,三位数和四位数(400固话除外)
中国电话区号三位数有十大城市。分别为:
北京市010
广州市020
上海市021
天津市022
重庆市023
沈阳市024
南京市025
武汉市027
成都市028
西安市029
2、移动电话由于国家的手机号码前三位在不断更新,目前移动、联通、电信三大运营商的手机号段大致如下:
移动号段有134,135,136,137,138,139,147,150,151,152,157,158,159,178,182,183,184,187,188。
联通号段有130,131,132,155,156,185,186,145,176。
电信号段有133,153,177,180,181,189。
中国使用的手机号码为11位,其中各段有不同的编码方向:前3位———网络识别号;第4-7位———地区编码;第8-11位———用户号码

二、工具类

import android.content.Context;
import android.text.TextUtils;
import android.widget.Toast;import java.util.regex.Matcher;
import java.util.regex.Pattern;/*** 类说明:手机号、固定电话合法性校验*/public class PhoneValidatorUtil {public static boolean matchPhone(String number, int type){if (TextUtils.isEmpty(number)) {return false;}if (type == 0) {Matcher m = null;Pattern p = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$");  // 验证带区号的,中间有"-"//p = Pattern.compile("^[1-9]{1}[0-9]{5,8}$");         // 验证没有区号的m = p.matcher(number);return m.matches();} else {//符合返回trueif (Pattern.matches("^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9]|17[0|6|7|8])\\d{8}$", number)) {return true;}}return false;}/**** @param context* @param number* @param type 0 固话 1 手机号* @return*/public static boolean matchPhoneShowToast(Context context, String number, int type){boolean flag = matchPhone(number, type);if (!flag){Toast.makeText(context, type == 0 ? "固定电话格式错误" : "移动电话格式错误!",Toast.LENGTH_SHORT).show();}return flag;}
}

该工具类目前支持13、14、15、17、18开头的号码,基本能支持目前市面上所有的手机号码,后期如有新号段,需再完善,以下为测试用例

//      String number = "0557-5033061";
//      String number = "021-62963636";String number = "029-86261199";if (PhoneValidatorUtil.matchPhoneShowToast(this, number, 0)){Log.i("TAG", "固定电话校验成功!");} else {Log.i("TAG", "固定电话校验失败!");}String phone = "14755296414";if (PhoneValidatorUtil.matchPhoneShowToast(this, phone, 1)){Log.i("TAG", "移动电话校验成功!");} else {Log.i("TAG", "移动电话校验失败!");}

java校验手机号码、固定电话的合法性相关推荐

  1. java 固定电话正则_JAVA 正则表达式判断手机号码 固定电话、邮编号

    故先要整清楚现在已经开放了多少个号码段,国家号码段分配如下: 移动:134.135.136.137.138.139.150.151.157(TD).158.159.187.188 联通:130.131 ...

  2. 校验手机号码和固定电话的正则

    在此记录一下,表单中的联系方式需要同时校验手机号码和固定电话. //联系方式 const lxfs = /^((0\d{2,3}-?\d{7,8})|(1[3465789]\d{9}))$/; 还有另 ...

  3. java 固定电话_Java 编写过滤手机号码或者固定电话的工具类

    以下是分享自己编写的用于过滤手机号码.固定电话.黑名单的工具类TelCheckUtils, import java.util.HashSet; import java.util.Set; import ...

  4. 表单校验方式(手机号,固定电话,邮箱,营业执照,银行卡号)

    最近在做后台的用户信息整理,要用到一些表单校验,在之前没有处理过营业执照这种的表单校验,正好借此机会整理一下,欢迎大佬们提出宝贵意见. 表单引入: <FormItem label="联 ...

  5. js验证固定电话、手机号码

    规则的国内固定电话和传真的格式基本都是带有0的区号+连接符"-"+电话号码,另外还有可能有分机号,区号有3位.4位,电话号码有7位和8位的:其它格式的有前面不带0的,或者不带连接符 ...

  6. js验证固定电话(座机)、手机号码

    规则的国内固定电话和传真的格式基本都是带有0的区号+连接符"-"+电话号码,另外还有可能有分机号,区号有3位.4位,电话号码有7位和8位的:其它格式的有前面不带0的,或者不带连接符 ...

  7. java代码固定电话判断,Java 固话和手机归属地判断

    import java.util.regex.Matcher; import java.util.regex.Pattern; public class NumberUtil { //用于匹配手机号码 ...

  8. 常用的表单验证Js方法,身份证、手机号码、固定电话正则验证建议收藏

    平时做项目时,经常会用到很多使用频率很高的代码,一有问题都习惯性问度娘!把自己都养懒了. /* 表单验证*/// 验证手机号码 function PhoneMustBePostiveInt(phone ...

  9. js验证固定电话、手机号码(代码大全)

    js验证固定电话.手机号码:代码大全 1. 手机号码 // 正则表达式 if(!(/^1[3456789]\d{9}$/.test(this.mobile))){ this.$notify.error ...

最新文章

  1. index match函数的使用方法_必学函数组合INDEX+MATCH,秒杀VLOOKUP函数
  2. iphone开发小技巧,转载
  3. 如何使用OSI模型排除故障
  4. JavaWeb学习之路——SSM框架之Spring(四)
  5. LeetCode 105. 已知前序中序 求二叉树
  6. nginx的目录结构和配置文件
  7. 国内外3D视觉优秀的实验室或者团队汇总
  8. dnn305的一个bug
  9. 计算机派位志愿填报技巧,小升初电脑派位 填报也有技巧
  10. ADB介绍—— 配置ADB环境变量
  11. snapchat忘记账户_如何恢复忘记的Snapchat密码
  12. 美国媒体称互联网不能成为低级趣味天堂
  13. Docker 2.3:Docker 镜像管理
  14. Task3:第三回:布局格式定方圆
  15. 34. 实战:基于某api实现歌曲检索与下载(附完整源代码)
  16. 应用金数据在线订单功能 为中小企业带来真正价值
  17. 实战-PHP远程代码执行漏洞
  18. Unity与全息投影
  19. Knuth 洗牌算法
  20. 英语题目作业(10)

热门文章

  1. idea系列激活服务器
  2. 媒体 | 耳朵财经 对话ArcBlock冒志鸿:链很重要,但在将来最大价值在于应用的开发平台...
  3. 使用UltraISO刻录大于4GB操作系统到U盘解决方法
  4. 新能源汽车行业专有名词
  5. Matlab演奏小星星
  6. Velocity介绍- -
  7. mysql查询当天的数据
  8. [错误]input输入框只能输入或者选中替换输入,不能删除内容
  9. python hasattr函数_浅谈python中的getattr函数 hasattr函数
  10. 国庆清北刷题冲刺班 Day3 上午