Java正则表达式验证电话号码

2023-11-18

在注册会员时,经常需要输入电话号码,电话号码是指手机号码或者固定电话。如果输入的内容不合法,则会向用户输出提示。本实例模拟实现电话号码的验证功能,接收用户在控制台输入的电话号码,然后进行判断,并将结果输出。

在这里使用《Java正则表达式》一节中讲到的正则表达式支持的字符来实现,步骤如下。

(1) 创建名为 Test21.java 的 Java 文件,在 main() 方法中开始编写代码。

 
  1. import java.util.Scanner;
  2. import java.util.regex.Matcher;
  3. import java.util.regex.Pattern;
  4. public class Text21 {
  5. public static void main(String[] args) {
  6. //编写代码
  7. }
  8. }

(2) 声明 String 类型的 regex 变量,它是用于验证电话号码的表达式。代码如下:

 
  1. 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 变量,它表示是否继续验证电话号码。代码如下:

 
  1. String answer = "Y";

(4) 使用 do…while 语句进行操作,首先接收用户在控制台输入的电话号码,然后利用 Pattern 类进行编译,接着创建给定输入模式的匹配器,调用 matches() 方法返回匹配的结果。如果结果为 true 表示验证通过,如果为 false 表示验证失败。代码如下:

 
  1. do {
  2. System.out.print("请留下您的电话号码:");
  3. Scanner scan = new Scanner(System.in);
  4. String phone = scan.next(); // 接收用户在控制台输入的电话号码
  5. Pattern pattern = Pattern.compile(regex); // 编译正则表达式
  6. Matcher matcher = pattern.matcher(phone); // 创建给定输入模式的匹配器
  7. boolean bool = matcher.matches();
  8. if(bool) { // 如果验证通过
  9. System.out.println("输入的电话号码格式正确。");
  10. } else {
  11. System.out.println("输入的电话号码无效,格式不正确。");
  12. }
  13. System.out.print("是否继续输入?(Y/N 或者 y/n)");
  14. answer=scan.next();
  15. }while(answer.equalsIgnoreCase("Y"));
  16. 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
注册结束。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java正则表达式验证电话号码 的相关文章

随机推荐

  • CSDN竞赛第40期题解

    CSDN竞赛第40期题解 1 题目名称 小鱼的航程 改进版 有一只小鱼 它上午游泳150公里 下午游泳100公里 晚上和周末都休息 实行双休日 假设从周x 1 lt x lt 7 开始 算起 请问这样过了n天以后 小鱼一共累计游泳了多少公里
  • Stable Diffusion 系统教程

    2023年的2月13日 一款名叫ControlNet的插件横空出世 AI绘画变得更加可控 ControlNet直译过来很简单 就叫做控制网 开发者是一名华裔 毕业于苏州大学 目前在斯坦福做读博士一年级 大佬大佬 在controlNet之前
  • 数字逻辑练习题(十一)利用74LS161设计一个七进制计数器

    一 题目描述 已知74LS161为同步四位二进制加法计数器 其逻辑符号和功能表如下 请利用74LS161设计一个七进制计数器 应写出分析设计过程 二 问题解答 1 分析 采用同步置数法进行设计
  • mysql for centos_centos7下安装mysql及测试centos

    步骤1 下载并安装MySQL wget http dev mysql com get mysql community release el7 5 noarch rpm rpm ivh mysql community release el7
  • Android studio3.0对于百度地图api开发(8)——百度地图开发思考

    随着对于百度地图SDK的不断深入 对于百度地图的基本操作以及实现 每一块功能就像是一个个工具 他们功能不同 又能相互组合 这就为我们开发者提供了一个很好的平台 在这个平台 开发人员可以进行根据自己的需求进行组装 为了更好的交流 相互学了 我
  • 苹果cmsV10-Dplayer播放器插件整合前置广告、暂停广告

    简介 Dplayer播放器 整合前置广告 暂停广告3 0免费版 很多朋友在用maccms的时候会遇到采集的视频资源存在大量的广告 这款Dplayer播放器不经能去除视频里的垃圾广告 还能站长自己添加广告 播放器整合说明 1 整合的苹果cms
  • 程序员整体架构之开发架构

    开发架构 文章目录 开发架构 概述 前言 互联网发展特点 单体架构 面向服务架构 SOA 水平分层架构 微服务架构 水平拆分 垂直拆分 服务网格架构 中台架构 云原生架构 Serverless 架构 小结 公众号 概述 简述了互联网业务发展
  • springboot的多环境配置(测试,开发,生产)

    众所周知再开发过程中 从开发 测试 上线 至少也得有3个环境 然而每个环境的配置都不一样 例如数据库配置 Redis配置 等各种配置 如果在打包环节来一个一个进行修改配置的话 非常容易出错 对于多环境配置 也有很多的构建工具 而他们的原理基
  • unity3d笔记-Input.GetAxis

    关于Input GetAxis 1 Input GetAxis Horizontal 获得键盘上的A D键 2 Input GetAxis Vertical 获得键盘上的W S键 3 Input GetAxis Mouse x 获得鼠标沿屏
  • 图像紫边消除(depurple)

    图像紫边广泛存在于目前的手机摄像头 数码相机 监控摄像头等数字成像系统所得图像中 当我们使用这些设备在逆光 大光圈等条件下拍摄时 所得图像的局部区域 特别是高反差区域 亮暗对比反差很大的图像区域 比如天空 灯管与物体相接的边缘 会比较容易观
  • 通过h5页面上传视频到Linux服务器

    1 上传视频到本地 https www jb51 net article 132531 htm 2 上传视频到Linux服务器 建立ftp连接 保证服务器已经安装ftp及对应端口 帐号有权限 上传视频 https blog csdn net
  • 基于实数编码的遗传算法搜寻多元函数最值

    遗传算法介绍 遗传算法于20世纪70年代由美国的John holland提出 是一种通过模仿达尔文生物进化理论和遗传机制以寻求问题最优解的启发式算法 算法的运作主要依赖于三大算子 选择 交叉 变异 其算法流程如图1所示 图1 遗传算法流程图
  • 作为一枚python小白如何提升项目实战——Python茅台抢购脚本详细教程

    今天给大家推荐的GitHub开源项目就是一款京东抢茅台的脚本 当然推荐的脚本也是仅用于测试和学习研究 禁止用于商业用途 不能保证其合法性 准确性 完整性和有效性 请根据情况自行判断 主要功能 预约茅台 定时自动预约 秒杀预约后等待抢购 定时
  • Python IO编程详解

    一 文件系统操作 1 os os path和pathlib的对比 Python中处理文件路径和文件系统操作的传统方式 是通过os和os path模块中的函数来完成的 这些函数完全能够胜任需求 但往往会使得代码过于冗长 自Python 3 5
  • java随机生成6位数

    生成6位随机数 仅只有6位 int Math random 9 1 100000 Math Random 函数能够返回带正号的double值 该值大于等于0 0且小于1 0 即取值范围是 0 0 1 0 的左闭右开区间
  • 理解 __declspec(dllexport)和__declspec(dllimport)

    这段时间要把tinyxml从静态库弄成动态库 要用到 declspec dllexport 和 declspec dllimport 来导出dll和lib文件 终于弄明白了export和import的作用 下面从使用的角度来说明一下他们的功
  • 2020北京邮电大学计算机学院复试经验分享

    初试组内第4 复试组内第1 综合第2 已成功上岸 最近大家问我复试的比较多 趁还热乎 在这里给大家分享一下吧 仅供参考 然后初试经验贴在这里 不要因为初试成绩不好就放弃复试或者不认真对待 复试是干嘛的就是用来翻盘的 都坚持了一年了 也不差这
  • C# 获取计算机信息

    文章目录 一 本机信息 1 本机名 2 获得本机MAC地址 3 获得计算机名 4 显示器分辨率 5 主显示器分辨率 6 系统路径 二 操作系统信息 1 操作系统类型 2 获得操作系统位数 3 获得操作系统版本 三 处理器信息 1 处理器个数
  • Sublime Text3设置文本的自动换行

    1 点击Preferences Settings 然后出现以下页面 2 点击保存即可 如果想要修改其他属性 可以直接在Default里面找就可以
  • Java正则表达式验证电话号码

    在注册会员时 经常需要输入电话号码 电话号码是指手机号码或者固定电话 如果输入的内容不合法 则会向用户输出提示 本实例模拟实现电话号码的验证功能 接收用户在控制台输入的电话号码 然后进行判断 并将结果输出 在这里使用 Java正则表达式 一