java 固定电话_Java 编写过滤手机号码或者固定电话的工具类
以下是分享自己編寫的用于過濾手機號碼、固定電話、黑名單的工具類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 编写过滤手机号码或者固定电话的工具类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图解浏览器渲染原理及流程
- 下一篇: FP寄存器