Java正则表达式验证电话号码
在注册会员时,经常需要输入电话号码,电话号码是指手机号码或者固定电话。如果输入的内容不合法,则会向用户输出提示。本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果输出。
在这里使用前面介绍的元字符、限定符及正则表达式来实现,步骤如下。
(1) 创建名为 Test21.java 的 Java 文件,在 main() 方法中开始编写代码。
- import java.util.Scanner;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- public class Text21
- {
- public static void main(String[] args)
- {
- //编写代码
- }
- }
(2) 声明 String 类型的 regex 变量,它是用于验证电话号码的表达式。代码如下:
- String regex="0\\d{2,3}[-]?\\d{7,8}|0\\d{2,3}\\s?\\d{7,8}|13[0-9]\\d{8}|15[1089]\\d{8}";
电话号码包括固定电话和手机号码。其中固定电话是由区号和号码组成,区号是以 0 开头的,后面是 2~3 位数,因此在匹配区号的时候可以使用正则表达式 0\d{2,3}
,固定电话号码由 7~8 位数字组成,因此可以使用表达式 \d{7,8}
来进行匹配。固定电话的组合方式可能是“区号-号码”或者是“区号号码”,因此匹配固定电话号码时,可以使用“0\\d{2,3}[-]?\\d{7,8}|0\\d{2,3}\\s?\\d{7,8}” 表达式。
手机号码是 11 位数,并且以数字 1 开头。考虑到手机号码的特殊性,这里使用“13[0-9]\\d{8}|15[1089]\\d{8}”表达式进行匹配。该正则表达式验证以 13 或 15 开头的手机号码; 以 15 开头的电话号码,第 3 位数字只能是 1、0、8、9 中的一个。
(3) 声明 String 类型的 answer 变量,它表示是否继续验证电话号码。代码如下:
- String answer="Y";
(4) 使用 do…while 语句进行操作,首先接收用户在控制台输入的电话号码,然后利用 Pattern 类进行编译,接着创建给定输入模式的匹配器,调用 matches() 方法返回匹配的结果。如果结果为 true 表示验证通过,如果为 false 表示验证失败。代码如下:
- do
- {
- System.out.print("请留下您的电话号码:");
- Scanner scan=new Scanner(System.in);
- String phone=scan.next(); //接收用户在控制台输入的电话号码
- Pattern pattern=Pattern.compile(regex); //编译正则表达式
- Matcher matcher=pattern.matcher(phone); //创建给定输入模式的匹配器
- boolean bool=matcher.matches();
- if(bool)
- { //如果验证通过
- System.out.println("输入的电话号码格式正确。");
- }
- else
- {
- System.out.println("输入的电话号码无效,格式不正确。");
- }
- System.out.print("是否继续输入?(Y/N 或者 y/n)");
- answer=scan.next();
- }while(answer.equalsIgnoreCase("Y"));
- System.out.println("注册结束。");
(5) 运行代码进行测试,如下所示:
请留下您的电话号码:18812345678 输入的电话号码无效,格式不正确。 是否继续输入?(Y/N 或者 y/n)y 请留下您的电话号码:180112345678 输入的电话号码无效,格式不正确。 是否继续输入?(Y/N 或者 y/n)n 注册结束。
请留下您的电话号码:010-12345678 输入的电话号码格式正确。 是否继续输入?(Y/N 或者 y/n)y 请留下您的电话号码:010-123456789 输入的电话号码无效,格式不正确。 是否继续输入?(Y/N 或者 y/n)y 请留下您的电话号码:0388-12345678 输入的电话号码格式正确。 是否继续输入?(Y/N 或者 y/n)n 注册结束。
Java正则表达式验证电话号码相关推荐
- 如何在Java中验证电话号码(正则表达式+ Google libphonenumber)
关于如何在不同国家(例如美国,美国)使用Java验证电话号码的快速指南. 带有正则表达式和Google libphonenumber API的示例程序. 1.简介 在本教程中,我们将学习如何在java ...
- java正则表达式验证_Java中的正则表达式电话号码验证
java正则表达式验证 Validating a phone number using regular expression is tricky because the phone number ca ...
- java 正则表达式 邮编_使用Java正则表达式验证邮政编码
为了使用正则表达式匹配邮政编码,我们在Java中使用matchs方法.java.lang.String.matches()方法返回一个布尔值,该值取决于String与正则表达式的匹配. 声明-java ...
- java电话号码开头_Java正则表达式验证电话号码
在注册会员时,经常需要输入电话号码,电话号码是指手机号码或者固定电话.如果输入的内容不合法,则会向用户输出提示.本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果 ...
- java 正则表达式 电话_Java-12正则表达式验证电话号码
在注册会员是,经常需要输入电话号码,电话号码是只手机号码或者固定电话.如果输入的内容不合法,则会向用户输出提士.本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果 ...
- Java 正则表达式验证小结
为什么80%的码农都做不了架构师?>>> package com.fsti.icop.util.regexp;import java.util.regex.Matcher; i ...
- 1.22 实例:正则表达式验证电话号码
在注册会员时,经常需要输入电话号码,电话号码是指手机号码或者固定电话.如果输入的内容不合法,则会向用户输出提示.本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果 ...
- java 正则表达式验证
package com.fsti.icop.util.regexp; import java.util.regex.Matcher; import java.util.regex.Pattern; p ...
- java正则表达式验证密码_java密码验证正则表达式校验
,正则表达式就是记录文本规则的代码. php密码验证正则表达式(8位长度限制) //密码验证 $password = "zongzi_Abc_oo13a2"; $n = preg_ ...
最新文章
- abb变频器acs800功率_ABB变频器如何选型(1)
- pythonflat怎么设置_python – numpy 2d和1d add flat
- ES6中的新特性:Iterables和iterators
- mac运行python速度慢_python-3.x – Pygame简单循环在Mac上运行得非常慢
- 【转】WCF请求应答(Request-Reply)、单向操作(One-Way)、回调操作(Call Back)
- Winson.Framework 1.5发布!
- ecshop getRow getAll getOne 返回值的区别
- 开源移动安全测试框架MobSF安装过程踩过的那些坑(一)
- java中将json字符串转换成map_Java中Json转Map方法
- 国人走向世界的一个很好的艺术与设计网站
- 图像处理RIP软件,图像色彩管理,数字喷墨打印技术
- pycharm显示全部数据_【数据可视化】BI工程师岗位分析
- Blog技巧,让Google把你的blog翻译成英文
- Python Turtle库绘制小黄脸表情包
- 学计算机和美发哪个好,今天跟大家分享一下我选择美发行业的原因
- 项目变更管理的必要性是什么?
- Python遥感图像处理应用篇(九):使用NDVI指数数据批量计算植被覆盖度FVC
- HDU 4352 XHXJ's LIS(*数位DP 记忆化搜索 待整理)
- android 360游戏sdk,360ssp sdk接入说明 360移送媒体平台Android SDK 接入说明
- 深度剖析PS通道磨皮法原理应用
热门文章
- AD17开发流程和经验技巧
- 开发者应该掌握的Java代码优化技能
- 高校图书馆管理系统 php 漏洞,某通用图书馆管理系统SQL注入_MySQL
- 你似乎加载了一个旧版本的opencore_黑苹果加载原生电源管理,手把手教你开启节能五项!...
- laravel6.x + laravel-admin v1
- Hadoop,Zookeeper这些名字都是怎么来的呢
- 解决Vue跨域访问后端API问题
- Axure|【教育】线下教育机构APP+后台管理系统
- docker中使用aspose word转pdf 乱码问题
- 网络编程Socket之wireshark使用