首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

手機/座機號碼正則表達式:支援 11 位手機、帶區號座機、無區號座機

     編輯:程式設計疑難解答

正則表達式 (Java/JS/Python 通用)

// 完整版:手機 + 座機(帶區號/不帶區號)
/^(
  (13\d|14[57]|15[0-35-9]|18[0-35-9])\d{8}      |  // 手機號 (主流號段)
  (0\d{2,3}-?\d{7,8})                           |  // 座機帶區號:010-12345678 / 057563552736
  ([1-9]\d{6,7})                                   // 座機不帶區號:63552736 (7-8位,首位非0)
)$/

分段解析

部分正則匹配示例
手機號`(13\d|14[57]|15[0-35-9]|18[0-35-9])\d{8}`13567543330, 18912345678
座機帶區號`0\d{2,3}-?\d{7,8}`010-12345678, 057563552736
座機無區號`[1-9]\d{6,7}`63552736, 1234567

各語言使用示例

// Java
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
boolean valid = m.matches();

// JavaScript
const regex = /^(...)$/; // 同前
regex.test(phone);

// Python
import re
re.match(r'^(...)', phone)

維護提示

  • 號段變更頻繁(如 16、17、19 段),建議**從配置中心/數據庫動態加載號段正則**,或簡化為 `^1\d{10}$` 只驗證長度、首位,再由後端/運營商庫精確校驗。
  • 國際化場景請用 Google `libphonenumber` 庫,支援全球號碼解析、格式化、驗證。

**正則僅做前端格式攔截,真實有效性必須發送驗證碼/運營商接口校驗。**

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved