温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎样用java正则校验手机号

发布时间:2026-10-25 13:17:13 来源:亿速云 阅读:96 作者:小樊 栏目:编程语言

在 Java 中校验手机号,通常使用 正则表达式(Regex) 结合 String.matches() 或 Pattern/Matcher 来实现。


一、中国大陆手机号规则(常用)

  • 长度:11 位
  • 开头:
    • 1 开头
    • 第二位通常是 3-9
  • 常见号段:
    • 13x、14x、15x、16x、17x、18x、19x

二、常用正则表达式

✅ 简单且常用(推荐)

^1[3-9]\\d{9}$

含义:

  • ^1:以 1 开头
  • [3-9]:第二位为 3~9
  • \\d{9}:后面 9 位数字
  • $:结束

三、Java 示例代码

方式一:String.matches()(最简单)

public class PhoneUtil {
    public static boolean isPhone(String phone) {
        if (phone == null) return false;
        return phone.matches("^1[3-9]\\d{9}$");
    }

    public static void main(String[] args) {
        System.out.println(isPhone("13812345678")); // true
        System.out.println(isPhone("12345678901")); // false
    }
}

方式二:Pattern + Matcher(推荐用于频繁校验)

import java.util.regex.Pattern;

public class PhoneUtil {
    private static final Pattern PHONE_PATTERN = 
        Pattern.compile("^1[3-9]\\d{9}$");

    public static boolean isPhone(String phone) {
        if (phone == null) return false;
        return PHONE_PATTERN.matcher(phone).matches();
    }
}

四、更严格的号段校验(可选)

如果你需要精确到具体号段(如只支持运营商号段):

^(13[0-9]|14[5-9]|15[0-3,5-9]|16[2,5,6,7]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$

五、注意事项

✅ 只校验格式,不校验是否真实存在
✅ 不包含国际手机号(如 +86)
✅ 若支持 +86,可加前缀校验


如果你需要:

  • ✅ 支持国际手机号
  • ✅ 支持 +86
  • ✅ 使用 Spring / Hibernate 注解校验

可以告诉我,我可以给你更完整的方案。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手