首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

正則表達式實戰:電話號碼與手機號碼匹配模式大全

     編輯:Java 綜合教學

正則表達式實戰:電話號碼與手機號碼匹配

固定電話(含區號)

# 0511-4405222 | 021-87888822
\d{3}-\d{8}|\d{4}-\d{7}

# (021)1234567 | (0411)123456
^\(0\d{2}|\d{4}\)\d{6,7}$

手機號(含 +86 可選)

# +8613012345678 | 86 13012345678 | 13245679087
^(?\+?(?:86)?)(?\s?-?)(?(?(13|15|18)\d)(?\d{4})(?\d{4}))$

命名捕獲組:national(國際碼)、separator(分隔符)、vender(運營商段)、area/id(號碼段)。

Java 代碼驗證示例

public class PhoneValidator {
    private static final Pattern LANDLINE = Pattern.compile("\\d{3}-\\d{8}|\\d{4}-\\d{7}");
    private static final Pattern MOBILE = Pattern.compile("^(\\+?86|86)?[-\\s]?(1[3-9]\\d{9})$");

    public static boolean isLandline(String s) { return LANDLINE.matcher(s).matches(); }
    public static boolean isMobile(String s) { return MOBILE.matcher(s).matches(); }
}

常見誤區提醒

  • 手機號段隨政策變化,需定期更新(如新增 16、17、19 段)。
  • 固話區號長度不固定(3-4 位),嚴格驗證需查號段庫。
  • 正則僅做格式校驗,無法判斷號碼是否真實存在。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved