`

Java 编写过滤手机号码或者固定电话的工具类

阅读更多

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

import java.util.HashSet;
import java.util.Set;
import java.util.regex.Pattern;

public class TelCheckUtils {
    public static final Set<String> 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 移动、联通、电信运营商的号码段
     *<p>移动的号段:134(0-8)、135、136、137、138、139、147(预计用于TD上网卡)
     *、150、151、152、157(TD专用)、158、159、187(未启用)、188(TD专用)</p>
     *<p>联通的号段:130、131、132、155、156(世界风专用)、185(未启用)、186(3g)</p>
     *<p>电信的号段:133、153、180(未启用)、189</p>
     * @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
     * <p><b>国家(地区) 代码 :</b>标识电话号码的国家(地区)的标准国家(地区)代码。它包含从 0 到 9 的一位或多位数字,
     *  数字之后是空格分隔的国家(地区)代码。</p>
     * <p><b>区号(城市代码):</b>这可能包含一个或多个从 0 到 9 的数字,地区或城市代码放在圆括号——
     * 对不使用地区或城市代码的国家(地区),则省略该组件。</p>
     * <p><b>电话号码:</b>这包含从 0 到 9 的一个或多个数字 </p>
     * @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工具类的简介,实际开发中还有许多其他工具类,如`Comparator`、`Optional`、`EnumSet`等,它们共同构成了Java丰富的类库,使得开发者能够更加高效、便捷地编写代码。了解并熟练运用这些工具类,是...

    JAVA 敏感词过滤

    4. 编写正则表达式:Java的Pattern和Matcher类可用于编写和执行正则表达式。 四、优化策略 1. 布隆过滤器:减少内存占用,用于初步判断是否可能包含敏感词,但存在误判风险。 2. 分布式过滤:当敏感词库巨大时,...

    Java工具类

    Java工具类是编程实践中常用的辅助模块,它们提供了一系列静态方法,可以方便地处理各种常见任务,从而提高开发效率。在Java领域,一个优秀的工具类库能够帮助开发者避免重复造轮子,专注于业务逻辑。以下是对标题和...

    java常用工具类集合(也有转自他人的)

    在Java编程领域,工具类(Util Classes)是程序员日常工作中不可或缺的部分。它们提供了一系列静态方法,简化了常见的任务,如字符串处理、日期时间操作、集合操作等。"java常用工具类集合"是一个综合性的资源,它...

    dataTable java接收参数工具类

    9. **单元测试**:为了确保工具类的正确性,需要编写单元测试用例,覆盖各种可能的请求参数组合,确保解析结果符合预期。 总之,"dataTable java接收参数工具类"是提升后端开发效率、简化请求处理过程的重要组件,...

    java-根据过滤条件显示树形结构

    - 如果使用了其他第三方库,比如Apache Commons或者其他过滤工具,还需要对应的jar包。 例如,如果你在项目中使用了Apache Commons Lang库进行字符串操作,那么`commons-lang3.jar`是必须的。在构建和运行项目时,...

    java 连接 MongoDB 工具类示例

    Java连接MongoDB工具类示例主要展示了如何在Java应用程序中与MongoDB数据库进行交互,MongoDB是一个NoSQL数据库,以其非关系型、分布式、高性能和灵活性而受到开发者的青睐。在Java中,我们通常使用MongoDB Java驱动...

    javascript后台调用的工具类

    "javascript.cs" 这个文件名暗示了这是一个用C#编写的JavaScript工具类。C#是一种面向对象的编程语言,常用于构建Windows应用程序和服务器端应用程序,包括ASP.NET Web应用。通过C#,开发者可以创建JavaScript库或...

    java写的几种方便web开发工具类源码

    5. **编码过滤工具类**:在处理用户输入时,防止SQL注入和跨站脚本攻击(XSS)非常重要。这个工具类可能提供对输入数据进行转义、清理和规范化的方法,确保数据的安全性。 6. **加密解密工具类**:在存储敏感信息,...

    JAVA常用工具类,一个五年开发经验的工程师上传的,但是要分我拿来1分让你们下载

    在Java编程语言中,工具类(Utility Class)是封装了常用功能的一类静态方法集合,它们为开发者提供了方便快捷的接口,以简化代码编写。这个压缩包“Java常用工具类”很可能包含了一些由一位有着五年开发经验的...

    一个用java编写的通讯录

    为了存储和管理联系人信息,开发者可能使用了类来代表每个联系人,包含姓名、电话号码、电子邮件等属性,并定义了相应的操作方法。此外,可能采用集合框架中的ArrayList或LinkedList作为数据结构,存储这些联系人...

    java常用工具类

    以上只是Java中众多工具类的一部分,每个类都为开发者提供了便利的功能,使得编写代码更为高效和简洁。熟练掌握这些工具类的使用,将极大地提升Java编程的效率和质量。在实际开发中,根据需求选择合适的工具类并恰当...

    java工具类(String)

    Java中的字符串处理是编程工作中非常常见且重要...理解并熟练使用这些工具类和方法,对于编写高效、简洁的Java代码至关重要。在实际开发中,合理选择和组合这些工具,可以帮助我们更好地完成字符串操作,提升代码质量。

    es7.15.2版本全部封装工具类

    在Java开发中,工具类是常见的代码组织形式,它们封装了特定功能,便于代码复用和维护。这里我们关注的是一个名为"es7.15.2版本全部封装工具类"的Java工具集,它专注于 Elasticsearch(ES)的7.15.2版本操作。...

    30个java工具类

    Java工具类是编程实践中不可或缺的一部分,它们提供了许多通用的功能,帮助开发者提高代码的复用性和效率。这30个Java工具类很可能包含了各种常见的实用功能,例如字符串处理、集合操作、日期时间管理、数学计算、IO...

    JAVA 编写的员工管理系统

    【JAVA 编写的员工管理系统】是一个基于JAVA技术的简单应用程序,它主要目标是实现对员工信息的有效管理和操作。这个系统通常包含数据存储、数据检索、数据更新和数据删除等核心功能,为企业或组织提供了一个方便的...

    java编写的数学计算工具

    Java编写的数学计算工具是一种基于Java编程语言设计的软件,旨在提供类似MATLAB的功能,用于进行复杂的数学计算。MATLAB是著名的数值计算软件,而这个Java版本的工具旨在为那些熟悉Java但又需要进行数学计算的用户...

    java常用的工具类

    以上仅是Java中部分常用工具类的概述,实际开发中还有许多其他工具类,如正则表达式工具Pattern和Matcher,IO流工具类BufferedReader和PrintWriter,网络通信工具Socket和ServerSocket等,都极大地丰富了Java的编程...

    Java工具类项目,Java-Commons

    2. **Collections**: 这部分提供了对Java集合框架的扩展,包括新的集合实现、集合操作(如排序、过滤、合并)以及一些实用的集合工具类。例如,它提供了泛型化的ListUtils、MapUtils和SetUtils,使得集合操作更加...

    java工具类

    Java工具类是Java编程语言中一个非常重要的组成部分,它们提供了许多通用的功能,使得开发者能够更加高效地编写代码,而无需从零开始实现基础功能。在Java中,工具类通常被设计为不可实例化的,而是通过静态方法提供...

Global site tag (gtag.js) - Google Analytics