Java国际化号码验证方法,国内手机号正则表达式

Java国际化号码验证方法,国内手机号正则表达式

中国电信号段 133、149、153、173、177、180、181、189、199
中国联通号段 130、131、132、145、155、156、166、175、176、185、186
中国移动号段 1340-8)、135、136、137、138、139、147、150、151、152、157、158、159、178、182、183、184、187、188、198
其他号段
14号段以前为上网卡专属号段,如中国联通的是145,中国移动的是147等等。
虚拟运营商
电信:1700、1701、1702
移动:1703、1705、1706
联通:1704、1707、1708、1709、171
卫星通信:1349
public static boolean isPhoneString phone) {
    String regex = "^13[0-9])|14[5,7,9])|15[0-3]|[5-9]))|166)|17[0,1,3,5,6,7,8])|18[0-9])|19[8|9]))\d{8}$";
    if phone.length) != 11) {
        return false;
    } else {
        Pattern p = Pattern.compileregex);
        Matcher m = p.matcherphone);
        return m.matches);
    }
}

国际化号码,先判断区号为国内的+86再用国内的号码正则表达式,国外的再逐个添加规则

public static boolean isPhoneString countrycode,String phone) {
        if isNullOrEmptyphone)) {
            return false;
        }
        //china phone
        if"+86".equalscountrycode)) {
            String regex = "^13[0-9])|14[5,7,9])|15[0-3]|[5-9]))|166)|17[0,1,3,5,6,7,8])|18[0-9])|19[8|9]))\d{8}$";
            if phone.length) != 11) {
                return false;
            } else {
                Pattern p = Pattern.compileregex);
                Matcher m = p.matcherphone);
                return m.matches);
            }
        }
        return true;
    }

Published by

风君子

独自遨游何稽首 揭天掀地慰生平