Java使用正则表达式验证手机号和电话号码的方法

 更新时间:2018年12月08日 15:29:06   作者:执笔记忆的空白  
今天小编就为大家分享一篇关于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

 /**
  * 获取当前的httpSession
  * @return
  */
 public static HttpSession getSession() {
  return getRequest().getSession();
 }
 /**
  * 手机号验证
  * @param str
  * @return 验证通过返回true
  */
 public static boolean isMobile(final String str) {
   Pattern p = null;
   Matcher m = null;
   boolean b = false;
   p = Pattern.compile("^[1][3,4,5,7,8][0-9]{9}$"); // 验证手机号
   m = p.matcher(str);
   b = m.matches();
   return b;
 }
 /**
  * 电话号码验证
  * @param str
  * @return 验证通过返回true
  */
 public static boolean isPhone(final String str) {
   Pattern p1 = null, p2 = null;
   Matcher m = null;
   boolean b = false;
   p1 = Pattern.compile("^[0][1-9]{2,3}-[0-9]{5,10}$"); // 验证带区号的
   p2 = Pattern.compile("^[1-9]{1}[0-9]{5,8}$");     // 验证没有区号的
   if (str.length() > 9) {
     m = p1.matcher(str);
     b = m.matches();
   } else {
     m = p2.matcher(str);
     b = m.matches();
   }
   return b;
 }
 public static void main(String[] args) {
  String phone = "13900442200";
  String phone2 = "021-88889999";
  String phone3 = "88889999";
  String phone4 = "1111111111";
  //测试1
  if(isPhone(phone) || isMobile(phone)){
   System.out.println("1这是符合的");
  }
  //测试2
  if(isPhone(phone2) || isMobile(phone2)){
   System.out.println("2这是符合的");
  }
  //测试3
  if(isPhone(phone3) || isMobile(phone3)){
   System.out.println("3这是符合的");
  }
  //测试4
  if(isPhone(phone4) || isMobile(phone4)){
   System.out.println("4这是符合的");
  }else{
   System.out.println("不符合");
  }
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • 在springboot中注入FilterRegistrationBean不生效的原因

    在springboot中注入FilterRegistrationBean不生效的原因

    这篇文章主要介绍了在springboot中注入FilterRegistrationBean不生效的原因及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • springboot如何实现异步响应请求(前端请求超时的问题解决)

    springboot如何实现异步响应请求(前端请求超时的问题解决)

    这篇文章主要给大家介绍了关于springboot如何实现异步响应请求(前端请求超时的问题解决)的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用springboot具有一定的参考学习价值,需要的朋友可以参考下
    2023-01-01
  • Spring Boot 与 Vue.js 整合流程

    Spring Boot 与 Vue.js 整合流程

    本文重点介绍我在Spring Boot 与 Vue.js 整合实践过程中的基本流程,以及遇到的问题,感兴趣的朋友跟随小编一起看看吧
    2018-09-09
  • Java实现字符串与字节数组之间相互转换

    Java实现字符串与字节数组之间相互转换

    在Java编程中,字符串(String)和字节数组(byte[])之间的相互转换是非常常见的操作,这种转换在网络编程、文件处理、加密解密等场景中尤为重要,本文将详细介绍如何在Java中实现字符串与字节数组之间的相互转换,需要的朋友可以参考下
    2025-02-02
  • Mybatis动态SQL foreach标签用法实例

    Mybatis动态SQL foreach标签用法实例

    这篇文章主要介绍了Mybatis动态SQL foreach标签用法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Java MyBatis传出参数resultType和resultMap解读

    Java MyBatis传出参数resultType和resultMap解读

    这篇文章主要介绍了Java MyBatis传出参数resultType和resultMap解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 详解SpringMVC加载配置Properties文件的几种方式

    详解SpringMVC加载配置Properties文件的几种方式

    这篇文章主要介绍了详解SpringMVC加载配置Properties文件的几种方式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • 基于Java字符编码的使用详解

    基于Java字符编码的使用详解

    本篇文章对Java字符编码的使用进行了详细的分析介绍。需要的朋友参考下
    2013-05-05
  • Maven多模块之父子关系的创建

    Maven多模块之父子关系的创建

    这篇文章主要介绍了Maven多模块之父子关系的创建,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 一文详细讲解Java时间格式转换

    一文详细讲解Java时间格式转换

    这篇文章主要介绍了Java时间格式转换的相关资料,文中详细介绍了SimpleDateFormat(适用于Java8之前)和java.time(适用于Java8及之后)的用法,需要的朋友可以参考下
    2024-12-12

最新评论