杰瑞科技汇

java 电话号码 正则表达式

Java 电话号码正则表达式

在Java中使用正则表达式验证电话号码时,需要考虑不同国家和地区的电话号码格式,以下是一些常用的正则表达式示例,适用于常见的电话号码格式。

简单的中国手机号码验证

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

这个正则表达式验证以1开头,第二位是3-9,后面跟着9位数字的手机号码。

包含国际区号的中国电话号码

public static boolean isValidInternationalPhoneNumber(String phoneNumber) {
    String regex = "^(\\+\\d{1,3}[- ]?)?1[3-9]\\d{9}$";
    return phoneNumber != null && phoneNumber.matches(regex);
}

这个版本允许添加国际区号(如+86),区号后可以跟空格或短横线。

美国电话号码验证

public static boolean isValidUSPhoneNumber(String phoneNumber) {
    String regex = "^\\+1?\\d{10}$";
    return phoneNumber != null && phoneNumber.matches(regex);
}

验证美国电话号码,格式如+14155552671或4155552671。

带分隔符的通用电话号码

public static boolean isValidPhoneNumberWithSeparators(String phoneNumber) {
    String regex = "^(\\+\\d{1,3}[- ]?)?\\(?\\d{3}\\)?[- ]?\\d{3}[- ]?\\d{4}$";
    return phoneNumber != null && phoneNumber.matches(regex);
}

这个正则表达式允许使用括号、空格或短横线作为分隔符,如(123) 456-7890或+1 (123) 456-7890。

国际电话号码通用验证

public static boolean isValidInternationalPhoneNumber(String phoneNumber) {
    String regex = "^(\\+\\d{1,3}[- ]?)?(\\(\\d{1,3}\\)|\\d{1,3})[- ]?\\d{1,4}[- ]?\\d{1,4}[- ]?\\d{1,9}$";
    return phoneNumber != null && phoneNumber.matches(regex);
}

这个正则表达式更通用,可以验证大多数国际电话号码格式。

使用示例

public static void main(String[] args) {
    String[] testNumbers = {
        "13812345678",    // 有效中国手机号
        "8613812345678",  // 有效带国际区号
        "+86 138 1234 5678", // 有效带分隔符
        "1234567890",     // 无效
        "12345",          // 无效
        "+1 (415) 555-2671" // 有效美国号码
    };
    for (String number : testNumbers) {
        System.out.println(number + ": " + isValidChinesePhoneNumber(number));
    }
}

注意事项

  1. 电话号码格式因国家和地区而异,应根据实际需求选择合适的正则表达式
  2. 对于生产环境,建议考虑使用专门的电话号码验证库,如Google的libphonenumber
  3. 正则表达式可能无法覆盖所有边缘情况,可能需要根据实际需求进行调整
  4. 考虑添加空值检查和其他输入验证

如果需要更精确的电话号码验证,建议使用专门的库如libphonenumber,它提供了更全面和准确的国际电话号码验证功能。

分享:
扫描分享到社交APP
上一篇
下一篇