Java 正则表达式校验手机号码

在现代软件开发中,经常需要对用户输入的数据进行校验。手机号码作为用户身份的重要标识,其校验尤为重要。本文将介绍如何使用Java正则表达式来校验手机号码。

正则表达式简介

正则表达式是一种用于字符串搜索和操作的强大工具。它使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在Java中,正则表达式是通过java.util.regex包中的PatternMatcher类来实现的。

手机号码的规则

在中国,手机号码通常由11位数字组成,前3位为运营商代码,中间4位为地区代码,后4位为用户号码。常见的手机号码格式如下:

  • 13xxxxxxxxx
  • 14xxxxxxxxx
  • 15xxxxxxxxx
  • 16xxxxxxxxx
  • 17xxxxxxxxx
  • 18xxxxxxxxx
  • 19xxxxxxxxx

其中,x代表0-9的数字。

正则表达式编写

根据手机号码的规则,我们可以编写如下正则表达式:

^(13|14|15|16|17|18|19)\d{9}$
  • 1.

解释如下:

  • ^:表示字符串的开始。
  • (13|14|15|16|17|18|19):表示匹配13、14、15、16、17、18、19中的任意一个。
  • \d{9}:表示匹配9位数字。
  • $:表示字符串的结束。

Java代码示例

下面是一个使用Java正则表达式校验手机号码的示例代码:

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class MobileNumberValidator {
    public static void main(String[] args) {
        String mobileNumber = "13812345678";
        boolean isValid = validateMobileNumber(mobileNumber);
        if (isValid) {
            System.out.println(mobileNumber + " 是一个有效的手机号码");
        } else {
            System.out.println(mobileNumber + " 不是一个有效的手机号码");
        }
    }

    public static boolean validateMobileNumber(String mobileNumber) {
        String regex = "^(13|14|15|16|17|18|19)\\d{9}$";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(mobileNumber);
        return matcher.matches();
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.

旅行图

为了更直观地展示手机号码校验的流程,我们可以使用Mermaid语法中的journey来绘制旅行图:

手机号码校验流程
步骤1:获取手机号码
步骤1:获取手机号码
用户输入
用户输入
步骤2:正则表达式匹配
步骤2:正则表达式匹配
正则表达式
正则表达式
步骤3:判断匹配结果
步骤3:判断匹配结果
匹配成功
匹配成功
匹配失败
匹配失败
手机号码校验流程

流程图

我们还可以绘制一个流程图来展示手机号码校验的逻辑:

开始 获取手机号码 正则表达式匹配 手机号码有效 手机号码无效 结束

结尾

通过本文的介绍,我们了解了如何使用Java正则表达式来校验手机号码。这不仅有助于提高软件的用户体验,还可以防止恶意用户输入无效的手机号码。希望本文对您有所帮助。