在 Java 中校验手机号,通常使用 正则表达式(Regex) 结合 String.matches() 或 Pattern/Matcher 来实现。
3-9^1[3-9]\\d{9}$
含义:
^1:以 1 开头[3-9]:第二位为 3~9\\d{9}:后面 9 位数字$:结束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可以告诉我,我可以给你更完整的方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。