在 Java 開發中,驗證手機號碼格式是常見需求。本文整理了針對中國大陸三大運營商(移動、聯通、電信)的正則表達式,並提供可直接使用的介面常量定義,幫助開發者快速完成號碼校驗。
以下正則涵蓋了主流號段,採用 ^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$ 統一匹配所有合法手機號;若需區分運營商,可使用下方專用模式:
public interface RegExpConst {
/** 通用手機號:移動、聯通、電信全覆蓋 */
String MOBILE = "^1(3[0-9]|5[0-35-9]|8[025-9])\\d{8}$";
/** 中國移動:134[0-8], 135, 136, 137, 138, 139, 150, 151, 157, 158, 159, 182, 187, 188 */
String CM = "^1(34[0-8]|(3[5-9]|5[017-9]|8[278])\\d)\\d{7}$";
/** 中國聯通:130, 131, 132, 152, 155, 156, 185, 186 */
String CU = "^1(3[0-2]|5[256]|8[56])\\d{8}$";
/** 中國電信:133, 1349, 153, 180, 189 */
String CT = "^1((33|53|8[09])[0-9]|349)\\d{7}$";
/** 固話及小靈通:區號 010/020/021 等,號碼 7-8 位 */
String PHS = "^0(10|2[0-5789]|\\d{3})\\d{7,8}$";
}
開發調試時,建議搭配線上工具提升效率:
將上述介面引入專案,即可透過 Pattern.matches(RegExpConst.MOBILE, phone) 快速驗證,靈活應用於註冊、登入、表單校驗等場景。