主要用到的正则表达式:
//用于匹配手机号码
private final static String REGEX_MOBILEPHONE = "^0?1[3458]\\d{9}$";
//用于匹配固定电话号码
private final static String REGEX_FIXEDPHONE = "^(010|02\\d|0[3-9]\\d{2})?\\d{6,8}$";
//用于获取固定电话中的区号
private final static String REGEX_ZIPCODE = "^(010|02\\d|0[3-9]\\d{2})\\d{6,8}$";
/**
* 判断是否为手机号码
*
* @param number
* 手机号码
* @return
*/
public static boolean isCellPhone(String number) {
Pattern p = Pattern.compile(PATTERN_MOBILEPHONE);
Matcher m = p.matcher(number);
return match.matches();
}
/**
* 判断是否为固定电话号码
*
* @param number
* 固定电话号码
* @return
*/
public static boolean isFixedPhone(String number) {
Pattern p = Pattern.compile(PATTERN_FIXEDPHONE);
Matcher m = p.matcher(number);
return match.matches();
}
/**
* 获取固定号码号码中的区号
*
* @param strNumber
* @return
*/
public static String getZipFromHomephone(String strNumber) {
Pattern p = Pattern.compile(PATTERN_ZIPCODE);
Matcher m = p.matcher(strNumber);
if (matcher.find()) {
return matcher.group(1);
}
return null;
}