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

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 编写过滤手机号码或者固定电话的工具类 的全部内容, 来源链接: utcz.com/z/390873.html

回到顶部