public class RegDemo { private static final String NUMBER="18759278256"; public static void main(String[] args) { if(!isChinaMobileNum(NUMBER)) { if(isPrefixNumber(NUMBER)) { System.out.println("是移动号"); } else { System.out.println("不是移动号"); } } else { System.out.println("是移动号"); } } private static boolean isPrefixNumber(String prefixNumber) { if(prefixNumber.startsWith("+86") || prefixNumber.startsWith("086")) { return isChinaMobileNum(prefixNumber.substring(3)); } else if(prefixNumber.startsWith("12593") || prefixNumber.startsWith("12520")) { return isChinaMobileNum(prefixNumber.substring(5)); } else if(prefixNumber.startsWith("086")) { return isChinaMobileNum(prefixNumber.substring(3)); } else if(prefixNumber.startsWith("0")) { return isChinaMobileNum(prefixNumber.substring(1)); } return false; } private static boolean isChinaMobileNum(String numStr) { if (numStr.matches("(134[0-8]|(135|136|137|138|139|150|151|152|157|158|159|182|187|188)[0-9])[0-9]{7}")) { return true; } return false; } }