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

(1) 创建名为 Test.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
注册结束。

1.22 实例:正则表达式验证电话号码相关推荐

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

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

  2. java电话号码开头_Java正则表达式验证电话号码

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

  3. java 正则表达式 电话_Java-12正则表达式验证电话号码

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

  4. html正则表达式验证电话号码,Javascript正则表达式验证账号、手机号、电话和邮箱的合法性...

    正则表达式是用于匹配字符串中字符组合的模式.在 JavaScript中,正则表达式也是对象.这些模式被用于 RegExp 的 exec 和 test 方法, 以及 String 的 match.rep ...

  5. C#中使用正则表达式验证电话号码、手机号、身份证号、数字和邮编

    验证电话号码的主要代码如下: public bool IsTelephone(string str_telephone) { return System.Text.RegularExpressions ...

  6. C#使用正则表达式验证电话号码、手机号、身份证号代码

    验证电话号码的主要代码如下:    public bool IsTelephone(stringstr_telephone)    {    returnSystem.Text.RegularExpr ...

  7. PHP使用正则表达式验证电话号码(手机和固定电话)

    这个还不错,很有用. tel='验证的电话号码'; $isMob="/^1[3-8]{1}[0-9]{9}$/";  $isTel="/^([0-9]{3,4}-)?[0 ...

  8. hive 正则表达式验证电话号码

    select '18901011231' regexp '(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$' 验证 ...

  9. 正则表达式验证代码(字母、数字、Email、网址、电话号码、汉字、身份证号码)

    <% if request("check")<>"" then astr=request("content") call ...

最新文章

  1. Java项目:房屋租赁管理系统(java+SSM+Layui+Maven+Mysql+Jsp)
  2. ACMNO.33 C语言-最大值3 分别用函数和带参的宏,从三个数中找出最大的数。
  3. PHP如何进行错误与异常处理(PHP7中的异常处理和之前版本异常处理的区别)
  4. FICO年结完全手册
  5. nyoj1057寻找最大数3
  6. oracle 5632,Oracle系统默认临时表空间以及redo日志文件问题处理
  7. 西瓜书+实战+吴恩达机器学习(十九)特征选择(过滤式选择、包裹式选择)
  8. eclipse快速导包快捷键_【IntelliJ IDEA mac新手入门】IDEA如何快速搭建Java开发环境...
  9. 【车辆计数】基于matlab形态学停车场车辆计数【含Matlab源码 628期】
  10. 社交App系统架构--自己亲手写的App系统(含github源码)
  11. 路由器怎么设置WiFi短信认证?
  12. 微软邮箱服务器出问题了,在微软邮箱登录时常见的问题有哪些
  13. 面试问到这个我直接蒙了,你呢?
  14. python爬取问卷星内容_Python Selenium 问卷星自动填写
  15. !和!!的区别和用法
  16. 噩梦射手(SurvivalShooter)教程(六)
  17. java基于quasar实现协程池【后篇】
  18. matlab升幂降幂排列,升幂排列与降幂排列测试题及答案
  19. 【ParaView教程】第四章 常见问题 —— 怎样用ParaView导入Star CCM+的结果?
  20. 基于Matlab遗传算法工具箱解决物流中心选址

热门文章

  1. ML之kNN:k最近邻kNN算法的简介、应用、经典案例之详细攻略
  2. DL之Yolov3:基于深度学习Yolov3算法实现视频目标检测之对《俄罗斯总统普京对沙特王储摊的“友好摊手”瞬间—东道主俄罗斯5-0完胜沙特》视频段实时检测
  3. MVC案例——模糊查询
  4. [hdu3549]Flow Problem(最大流模板题)
  5. NAT的全然分析及其UDP穿透的全然解决方式
  6. joa-framework 工作流高速开发框架(jeecg官方工作流版本号) 公布
  7. Swift游戏实战-跑酷熊猫 00 游戏预览
  8. 【转】asp.net中@page指令的属性Inherits、Src、CodeBehind区别
  9. 深入理解C++中的mutable关键字
  10. 用STM32F103C8T6的做IAP时,在跳转时一直进入HardFault_Handler 解决方法