首页 > 编程语言 >Java手机号校验规则最新

Java手机号校验规则最新

时间:2024-05-20 18:29:57浏览次数:23  
标签:Java 手机号 正则表达式 手机号码 校验 规则

一、最新的Java手机号校验规则

在Java中,进行手机号校验通常使用正则表达式(Regex)来匹配手机号的格式。以下是一个基于当前(截至2024年)中国手机号规则的校验方法:

中国手机号通常以数字1开头,第二位在3、4、5、7、8、9中选择,后面跟着9位数字,总共11位。以下是一个使用正则表达式实现手机号校验的Java方法:

public static boolean isValidPhoneNumber(String phoneNumber) {  
    String regex = "^1[3-9]\\d{9}$";  
    return phoneNumber.matches(regex);  
}

这里的正则表达式^1[3-9]\\d{9}$的含义是:

  • ^ 表示字符串的开头。
  • 1 表示第一位必须是数字1。
  • [3-9] 表示第二位必须是3到9之间的任意一个数字。
  • \\d{9} 表示后面必须跟着9位数字。
  • $ 表示字符串的结尾。

这个方法会校验输入的字符串是否符合中国手机号码格式,如果符合返回true,否则返回false

需要注意的是,虽然这个正则表达式可以覆盖大部分中国手机号的规则,但随着时间的推移,可能会出现新的手机号段或者规则变化。因此,在实际应用中,可能需要根据最新的手机号规则来更新正则表达式。

另外,如果你需要更严格的校验(比如校验手机号码是否真实存在),那么可能需要使用更复杂的逻辑或者调用外部服务来进行验证。但是,这种级别的验证通常不在正则表达式的能力范围内。

二、Java手机号校验规则是什么

上面我们讨论了java手机号校验规则最新,现在我们不妨一起讨论一下“java手机号校验规则是什么”,在Java中,中国大陆的手机号码校验规则通常基于手机号码的特定格式。中国大陆的手机号码具有以下特点:

  1. 长度:手机号码必须是11位数字。
  2. 开头:手机号码必须以数字“1”开头。
  3. 第二位数字:手机号码的第二位数字必须是3、4、5、7、8、9中的一个。

基于这些规则,可以编写一个正则表达式来校验手机号码。以下是一个示例正则表达式:

String regex = "^1[3-9]\\d{9}$";

这个正则表达式的含义是:

  • ^ 表示字符串的开始。
  • 1 表示手机号码必须以数字1开头。
  • [3-9] 表示手机号码的第二位必须是3到9之间的数字。
  • \\d{9} 表示后面必须跟着9位数字。
  • $ 表示字符串的结束。

在Java中,可以使用PatternMatcher类来应用这个正则表达式进行手机号码的校验。以下是一个完整的示例方法:

import java.util.regex.Pattern;  
import java.util.regex.Matcher;  
  
public class PhoneNumberValidator {  
  
    private static final Pattern PHONE_PATTERN = Pattern.compile("^1[3-9]\\d{9}$");  
  
    public static boolean isValidPhoneNumber(String phoneNumber) {  
        if (phoneNumber == null || phoneNumber.isEmpty()) {  
            return false;  
        }  
        Matcher matcher = PHONE_PATTERN.matcher(phoneNumber);  
        return matcher.matches();  
    }  
  
    public static void main(String[] args) {  
        System.out.println(isValidPhoneNumber("13800138000")); // 输出: true  
        System.out.println(isValidPhoneNumber("12800138000")); // 输出: false,因为第二位不是3-9  
        System.out.println(isValidPhoneNumber("1380013800"));  // 输出: false,因为长度不是11位  
        System.out.println(isValidPhoneNumber(null));        // 输出: false,因为输入为null  
    }  
}

请注意,这个校验方法只能验证手机号码是否符合中国大陆的手机号码格式,但不能确保手机号码是否真实存在或已分配给某个用户。如果需要验证手机号码的真实性,通常需要使用额外的服务或数据库来查询。

标签:Java,手机号,正则表达式,手机号码,校验,规则
From: https://www.cnblogs.com/TS86/p/18202583

相关文章

  • java实现按比重抽奖
    java实现按比重抽奖目录java实现按比重抽奖方案轮盘抽奖示例关键点BinarySearch(二分查找)方案对于按比重抽奖的更优方案,可以考虑以下几种方法:轮盘抽奖(RouletteWheelSelection)原理:想象一个旋转的轮盘,每个奖品占据轮盘上与其权重成比例的区域。随机选择一个点并让其“落下......
  • java应用CPU占用率过高排查
    1.背景服务器CPU使用率告警,紧急排查。2.排查思路2.1top查看各进程的CPU占用率top查到进程的pid2.2查看该进程的所有线程top-Hp<pid>发现大量的GCtaskthread#的cpu使用超过90%,定位到时频繁GC导致,可能是内存不足引起#jstat监控GC情况,其中:<vmid> 是Java虚拟机......
  • what's the advantages of using Map over Object in JavaScript?
    what'stheadvantagesofusingMapoverObjectinJavaScript?在JavaScript中使用Map相对于Object有什么优势?prosconsdemoshttps://leetcode.com/studyplan/30-days-of-javascript/(......
  • 解决yarn打包时出现“FATAL ERROR: Reached heap limit Allocation failed - JavaScri
    1、......
  • CentOS7安装Java
    1.查看是否有安装Javarpm-qa|grepjavarpm-qa|grepjdkrpm-qa|grepgcj如果之前有安装就卸载安装rpm-qa|grepjava|xargsrpm-e--nodeps2.下载安装包https://www.oracle.com/java/technologies/downloads/#java83.上传CentOS7服务器这里我们使用的......
  • Java常用的JSON序列化与反序列化工具实践
    JSON简介:JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,通常用于在不同系统之间传输数据。它基于JavaScript对象语法,但已成为一种独立于语言的格式。JSON数据以键值对的形式组织,易于阅读和编写。为什么要使用JSON?1.简单易用:JSON的语法简单,易于理解和编写,可以......
  • JavaScript------querySelector/querySelectorAll的使用
    1、基础语法querySelector()方法返回文档中匹配指定CSS选择器的一个元素。querySelector()方法仅仅返回匹配指定选择器的第一个元素。如果你需要返回所有的元素,请使用querySelectorAll()方法替代。属性:指定一个或多个匹配元素的CSS选择器。可以使用它们的id,类,类......
  • Java基础-转岗学习路线
    2023年初,因为公司项目的调整变化,原来的Unity项目取消了,没有其他适合的项目和岗位可以做了,公司也不进行裁员而是允许转岗,鉴于就业形势不佳以及我有机会来好好学习其他技术,于是我决定转岗Java后端开发,当然,总归还是迫于无奈,对我来说也是个不小的挑战,因为虽然做开发四年有余,有Java代码......
  • 【JAVA】BOSS系统发版艺术:构建高效、优雅的微服务部署策略
    在现代软件开发领域,微服务架构与容器化部署已迅速成为行业新趋势。微服务架构通过将应用拆分成多个小型、自治的服务单元,每个服务承担某项特定的业务功能。而容器化部署则以其轻量级和高度可移植的特性,为这些微服务的有效打包、分发和运行提供了强大支持。在这样的环境中,实现微服......
  • hdu1025java
    1:dp+二分 NlogN的复杂度2:注意road与roads区别3:注意输入不能用Scanner4:注意格式最后是要输出两个空行假设存在一个序列d[1..9]=215364897,可以看出来它的LIS长度为5。下面一步一步试着找出它。我们定义一个序列B,然后令i=1to9逐个考察这个序列。此外,我们用......