欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 编写过滤手机号码或者固定电话的工具类 博客分类: Java Base Java 

程序员文章站 2024-03-24 21:47:34
...

以下是分享自己编写的用于过滤手机号码、固定电话、黑名单的工具类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