以下是分享自己编写的用于过滤手机号码、固定电话、黑名单的工具类TelCheckUtils,

import java.util.HashSet;

import java.util.Set;

import java.util.regex.Pattern;

public class TelCheckUtils {

public static final Set UNNEEDTEL = new HashSet<>();

static {

//写在配置文件中

String repaetContacts = FundamentalConfigProvider.getString("repeatContacts.phone.unneededTels");

String[] contacts = repaetContacts.split(",");

for (String contact : contacts){

UNNEEDTEL.add(contact);

}

}

/**

* 验证手机号码(支持国际格式,+86135xxxx...(中国内地),+00852137xxxx...(中国香港))

* @param mobile 移动、联通、电信运营商的号码段

*

移动的号段:134(0-8)、135、136、137、138、139、147(预计用于TD上网卡)

*、150、151、152、157(TD专用)、158、159、187(未启用)、188(TD专用)

*

联通的号段:130、131、132、155、156(世界风专用)、185(未启用)、186(3g)

*

电信的号段:133、153、180(未启用)、189

* @return 验证成功返回true,验证失败返回false

*/

public static boolean checkMobile(String mobile) {

String regex = "(\\+\\d+)?1[3458]\\d{9}$";

return Pattern.matches(regex,mobile);

}

/**

* 验证不必要的号码

* @param mobile

* @return

*/

public static boolean checkUnNeedTel(String mobile) {

return UNNEEDTEL.contains(mobile)||mobile.startsWith("400");

}

/**

* 验证固定电话号码

* @param phone 电话号码,格式:国家(地区)电话代码 + 区号(城市代码) + 电话号码,如:+8602085588447

*

国家(地区) 代码 :标识电话号码的国家(地区)的标准国家(地区)代码。它包含从 0 到 9 的一位或多位数字,

* 数字之后是空格分隔的国家(地区)代码。

*

区号(城市代码):这可能包含一个或多个从 0 到 9 的数字,地区或城市代码放在圆括号——

* 对不使用地区或城市代码的国家(地区),则省略该组件。

*

电话号码:这包含从 0 到 9 的一个或多个数字

* @return 验证成功返回true,验证失败返回false

*/

public static boolean checkPhone(String phone) {

String regex = "(\\+\\d+)?(\\d{3,4}\\-?)?\\d{7,8}$";

return Pattern.matches(regex, phone);

}

/**

* 包括固话和手机号

* @param str

* @return 验证通过返回true

*/

public static boolean isTelNumber(String str) {

return checkMobile(str)&&!checkUnNeedTel(str);

}

}

其他的还可以看:

http://blog.csdn.net/afei__/article/details/51482801

java 固定电话_Java 编写过滤手机号码或者固定电话的工具类相关推荐

  1. java在线支付---04_编写易宝支付的客户端加密工具类

    2013/5/30 04_编写易宝支付的客户端加密工具类 创梦综合技术qq交流群:CreDream:251572072 ---------------------------------------- ...

  2. Java中Date类型如何向前向后滚动时间,( 附工具类)

    Java中的Date类型向前向后滚动时间(附工具类) 废话不多说,先看工具类: 1 import java.text.SimpleDateFormat; 2 import java.util.Cale ...

  3. Java利用反射封装DBUtil,mysql万能增删改查工具类,附源码

    Java利用反射封装DBUtil,mysql万能增删改查工具类,附源码 等有时间再慢慢写代码注释吧,先把源码放出来.文章最后有整个项目的压缩包. ps:拓展 Java 原生MySQL JDBC 插入后 ...

  4. java号段_Java匹配国内手机号码段

    目前(2016-12-7)三大运营商最新号段以下 移动号段: 134 135 136 137 138 139 147 150 151 152 157 158 159 178 182 183 184 1 ...

  5. java制造病毒_java编写病毒的可行性分析

    java编写病毒的可行性分析 最近心情十分郁闷,查阅一些病毒的资料消遣一下,居然发现这样的论调讲 java语言不可能编写病毒,在此特地反驳一下. 1 可执行 论调1:java需要依赖jre,无法在无j ...

  6. java常用工具类_java(二):工作中常用到的工具类

    工作中大家要用到很多工具类,第三方的jar中有很多现成的工具类符合自己的项目需要,这个时候就不需要去重复造轮子了,从而节省了很多时间,大家可以利用这些时间去做其它重要的事情,如果没有符合自己的工具类, ...

  7. java url类下载_Java根据url下载图片或文件的工具类-Fun言

    package cn.funyan.utils; import java.io.FileOutputStream; import java.io.IOException; import java.io ...

  8. java 数字翻译成英文_Java实现数字日期翻译成英文单词的工具类案例分享

    这篇文章主要介绍了Java实现将数字日期翻译成英文单词的工具类,结合完整实例形式分析了Java日期转换与字符串操作相关实现技巧,需要的朋友可以参考下 本文实例讲述了Java实现将数字日期翻译成英文单词 ...

  9. java spring文件下载_SpringMVC实现文件上传和下载的工具类

    本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中. 开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成 ...

最新文章

  1. C#从数据库导出数据[excel]
  2. Ubuntu8.10下修复FC7系统的home分区
  3. Latex: 设置 threeparttable footnote 行宽度
  4. 字符串数组中查找字符串
  5. 通过服务器端日志分析WebSocket的server和client交互
  6. java break递归_【Java】递归总结
  7. 半夜,滴滴司机问我会LRU吗?
  8. 如何在windows下成功的编译和安装python组件hyperscan
  9. android 结束if循环_几款Android反编译器对循环结构的还原能力测试记录
  10. 2018软工第六次作业
  11. 如何优雅地抄袭代码?天下代码一大抄,这才是正确的姿势
  12. 传统语音识别GMM和HMM
  13. 数据结构(主席树):HZOI 2016 采花
  14. 了解并使用Xposed 框架神器
  15. 计算机钢琴键盘,Everyone Piano
  16. phpstudy的基本使用方法
  17. 怎样配置更完美的图形工作站
  18. iap如何初始化_STM32F4-IAP学习笔记(一)
  19. MIP启发式算法:local branching
  20. 迅雷9去右侧浏览器补丁

热门文章

  1. 某外包程序员吐槽:石乐志,又不是正式工,你拿阿里价值观压我
  2. 用 .NET 启动你的 DJI Ryze Tello 无人机
  3. 疯子网页采集器教程之图片本地化教程
  4. IDEA导出jar(引用外部jar包)
  5. Python实现摄像头状态巡检
  6. 冒号课堂:知识之上是思想,思想之上是精神
  7. CSS背景图的应用实例
  8. 过级计算机组装题,全国计算机一级试题及答案「」
  9. SunDay天气--第二弹
  10. 整理一些不错的、网上好评的电影、电视、视频等资源地址