首页 > 编程语言 >Java国际化号码验证方法,国内手机号正则表达式

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

时间:2023-02-23 15:56:30浏览次数:34  
标签:regex return 手机号 正则表达式 Pattern phone 号段 Java String

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

 
中国电信号段 133、149、153、173、177、180、181、189、199
中国联通号段 130、131、132、145、155、156、166、175、176、185、186
中国移动号段 134(0-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 isPhone(String 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.compile(regex);
        Matcher m = p.matcher(phone);
        return m.matches();
    }
}
 

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

 
public static boolean isPhone(String countrycode,String phone) {
        if (isNullOrEmpty(phone)) {
            return false;
        }
        //china phone
        if("+86".equals(countrycode)) {
            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.compile(regex);
                Matcher m = p.matcher(phone);
                return m.matches();
            }
        }
        return true;
    }
   

标签:regex,return,手机号,正则表达式,Pattern,phone,号段,Java,String
From: https://www.cnblogs.com/rianley/p/17148276.html

相关文章

  • java--BigDecimal 类型介绍
      BigDecimal.add();    //加法BigDecimal.subtract();//减法BigDecimal.multiply();//乘法BigDecimal.divide();  //除法在这些BigDecimal调用的这......
  • java中四种创建线程的方式
    第一种方式:通过编写类继承Thread,重写run方法实现 实现实例:publicclassThreadTest{publicstaticvoidmain(String[]args){System.out.println("ma......
  • Java ”框架 = 注解 + 反射 + 设计模式“ 之 反射详解
    Java”框架=注解+反射+设计模式“之反射详解每博一文案无论幸福还是苦难,无论光荣还是屈辱,你都要自己遭遇与承受。——————《......
  • JavaScript Boolean
    <!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title></title> <scripttype="text/javascript"> /* *Boolean布尔值 * 布尔值只有两......
  • java 文件字节输入流
      Example10_4.javaimportjava.io.*;publicclassExample10_4{publicstaticvoidmain(Stringargs[]){intn=-1;byte[]a=newbyte[1......
  • java 创建一个File文件对象
      Example10_1.javaimportjava.io.*;publicclassExample10_1{publicstaticvoidmain(Stringargs[]){Filef=newFile("C:\\ch10","Example......
  • java 面向接口编程
        Advertisement.javapublicinterfaceAdvertisement{//接口publicvoidshowAdvertisement();publicStringgetCorpName();}Advertis......
  • 【JavaScript】26_数组的方法,对象的复制与数组的复制
    4、数组的方法​​https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array​​Array.isArray()用来检查一个对象是否是数组at()可以根据......
  • Java基础知识点(类的几个补充注意事项和private关键字)
    一:类的几个补充注意事项1.用来描述一类事物的类,专业叫做javaBean类2.在以前,编写main方法的类叫做测试类,我们可以在测试类中创建javabean类的对象并进行赋值调用。3.类名首字......
  • java 线程的同步
     https://www.cnblogs.com/yihujiu Example12_7.javapublicclassExample12_7{publicstaticvoidmain(Stringargs[]){Bankbank=newBank();......