// 完整版:手機 + 座機(帶區號/不帶區號)
/^(
(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)
**正則僅做前端格式攔截,真實有效性必須發送驗證碼/運營商接口校驗。**