Java使用正则表达式验证手机号和电话号码_java验证手机号的正则表达式-程序员宅基地

技术标签: 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("不符合");
  }
 }

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/YiWangJiuShiXingFu/article/details/118573939

智能推荐

《前端面试题》- TypeScript - TypeScript的优/缺点

问题简述TypeScript的优/缺点答案优点增强了代码的可读性和可维护性包容性,js可以直接改成ts,ts编译报错也可以生成js文件,兼容第三方库,即使不是ts编写的社区活跃,完全支持es6缺点增加学习成本增加开发成本,因为增加了类型定义需要编译,类型检查会增加编译时长,语法和类型系统复杂的话时间特别特别长eval和new Function()这种操作类型系统管不到...

.NET 实现实体对象深拷贝(克隆/复制)的几种方法_net 对象复制-程序员宅基地

文章浏览阅读6.7k次。浅拷贝:指对象的字段被拷贝,而字段引用的对象不会被拷贝,拷贝对象和原对象仅仅是引用名称有所不同,但是它们共用一份实体。对任何一个对象的改变,都会影响到另外一个对象。大部分的引用类型,实现的都是浅拷贝,引用类型对象之间的赋值,就是复制一个对象引用地址的副本,而指向的对象实例仍然是同一个。深拷贝:指对象的子段被拷贝,同时字段引用的对象也进行了拷贝。深拷贝创建的是整个源对象的结构,拷贝对象和原对象相..._net 对象复制

StarRocks x Paimon 构建极速实时湖仓分析架构实践

当前 StarRocks x Paimon 的能力主要包括:支持各类存储系统,包括 HDFS 以及对象存储 S3/OSS/OSS-HDFS支持 HMS 以及阿里云 DLF 元数据管理系统支持 Paimon 的 Primary Key 和 Append Only 表类型查询支持 Paimon 系统表的查询,常见例如 Read Optimized 表,snapshots 表等支持 Paimon 表和其他类型数据湖格式的关联查询支持 Paimon 表和 StarRocks 内表的关联查询。

Java设计模式 _创建型模式_原型模式(Cloneable)

1、原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能比较好。一般对付出较大代价获取到的实体对象进行克隆操作,可以提升性能。(2)、复写clone方法(当前对象本身可以不复写,如果当前对象被继承,需要clone子类,则必须要复写)(1)、需要克隆的实体类实现Cloneable接口。可以看出,完整的复制了属性,且并不是同一个对象。

GPT与GAN结合生成图像——VQGAN原理解析

这篇文章,我们讲VQ_GAN,这是一个将特征向量离散化的模型,其效果相当不错,搭配Transformer(GPT)或者CLIP使用,达到的效果在当时可谓是令人拍案叫绝![GPT与GAN结合生成图像——VQGAN原理解析-哔哩哔哩]效果演示:图像生成其他任务。

希尔(谢尔)排序/缩小增量排序(Python实现)_希尔排序dk=1-程序员宅基地

文章浏览阅读280次。排序-希尔排序文章目录排序-希尔排序时间线前言定义一图流逻辑逻辑思考时间复杂度实现Python思考时间线 2020年7月4日——完成初稿 2020年7月4日——增加时间性能测试前言从学习算法到这篇笔记完成之前,一直都以为希尔排序是多么难懂以及高大上,但其实只要弄懂了就简单了。以前觉得只要掌握一些常见的即可,但后来才发现,其它的排序算法也有其独特的魅力——不是说这个算法可以实现了什么完成了什么,其魅力在于实现的过程,与其它算法的区别。定义一图流希尔排序是直接插入排序算法的改进,所_希尔排序dk=1

随便推点

C语言中vu16什么意思,规范化编程-程序员宅基地

文章浏览阅读2.2k次。题目:规范化和模块化编程0引言通过一年多的编程经历,经常会为杂乱无章的程序弄的晕头转向,影响编程质量和进度。同时也为了程序的可移植性和可读性,规范化和模块化编程应该在开始编写的第一个程序时就要有规范化和模块化编程的思想,并在实践中运用,养成规范化和模块化编程的好习惯。1规范化编程谈到规范性编程这里我们是在符合c语言基本运用原理的基础上加以说明,以下我们主要讲以下几个方面:1.1 定义一个自己con..._vu16

java基础之Integer比较问题_new integer创建了几个对象-程序员宅基地

文章浏览阅读1.5k次。一. 使用 new Integer() 创建的对象 :Integer i = new Integer(100); Integer j = new Integer(100); System.out.println(i==j); 执行上述代码,打印结果是:false上述代码中我们执行了两次new,所以创建了两个Integer型的对象,对象之间的“==”符是用来比较是否是一个对象的两个引用(即比较地址是否相同),上述代码中,两次new出来的对象地址显然是不可能相同的,故打印结果是false_new integer创建了几个对象

euclidea4攻略_Euclidea几何构建9.4通关攻略-程序员宅基地

文章浏览阅读1k次。Euclidea几何构建全关卡通关攻略大全玩腻味了哪些大开发商的游戏,小编给大家推荐一款挺有意思的小游戏Euclidea。Euclidea几何构建是一款具有理科生浪漫的游戏,这是一款数学几何风格的休闲益智类手游,玩法就是尺规做图,根据每个关卡给出的道具和要求,以在最短的步骤内解出答案。想说这游戏的趣味就是难度不是一点二点的,有兴趣的大家可以试试。euclidea几何构建全关卡通关攻略Euclide..._几何构建攻略

【算法】前缀和

前缀和,实际上是一种非常简单的动态规划,通过预处理前缀和数组,以空间换时间,提高运行效率。

php7.4在foreach中对使用数据使用无法??[]判读,无法使用引用传递&

代码如下图:这样子在foreach中是无法修改class_history的。

pdf转换成byte放入mysql_如何将生成的pdf文件保存到java中的mysql数据...-程序员宅基地

文章浏览阅读357次。我有一个使用itext库生成pdf文件的java类.现在根据我的需要,我必须将生成的pdf文件保存到mysql数据库表中,但是我不知道该怎么做.我的担心是:…1.我可以在pdf表的mysql列中提供什么数据类型以保存pdf文件.2.哪个查询将生成的pdf文件插入数据库..目前,我正在生成pdf文件,并将其存储到本地磁盘的硬编码文件路径中.这是我在java中的pdf生成代码…OutputStream..._java:mysql数据库据转换pdf格式并打印机输出java:mysql数据库据转换pdf格式并打印

推荐文章

热门文章

相关标签