Most Taiwan-localized form inputs in the wild are either copy-pasted from Stack Overflow with subtle bugs, or built on generic international libraries that don't know about 0836 (馬祖) or 7-rule. Here's how Forge compares.
民間 React 元件解決方案的常見問題 — Stack Overflow 抄寫、generic 國際套件不認識台灣本土規格。
| 項目 · Feature | 自寫驗證器 Hand-rolled | 通用國際庫 Generic libs | Forge 這套 |
|---|---|---|---|
民國紀年支援 · ROC year | ❌ 通常自寫,常含錯誤 | ❌ 通常無支援 | ✅ ROCDatePicker、ROCDateRangePicker、TaiwanCalendarMonth |
身分證 + 新式居留證 (2021+) | 🟡 70%+ 開源實作只支援舊格式 ARC | ❌ 無 | ✅ 區分 citizen / arc-new / arc-legacy 三種類型 |
統編 7-rule 校驗 | ❌ 90% 實作漏掉此例外規則 | ❌ 無此知識 | ✅ 完整 財政部 演算法 + 真實統編測試 (TSMC/鴻海/中華電信) |
電話:馬祖 0836 / 烏坵 0826 | ❌ 幾乎全數遺漏 | ❌ 無 | ✅ 完整 NCC 號碼計畫,含所有外島區碼 |
健保卡卡號格式 | 🟡 通常只做位數檢查 | ❌ 無 | ✅ 12 位檢查 + 文件明示需搭配讀卡機 SDK |
車牌:新式 / 舊式 / 機車重型 | 🟡 新式 (3+4) 通常有,機車重型常漏 | ❌ 無 | ✅ 全部 4 種格式 + hint="motorcycle" 切換 |
統一發票:格式驗證 | 🟡 通常只檢查 AB-12345678 字面 | ❌ 無 | ✅ 格式 + 中獎號碼比對 (v0.3 路線圖) |
金額:阿拉伯 → 大寫中文 | ❌ 幾乎沒人做 | ❌ 無 | ✅ 1,234,567 → 壹佰貳拾參萬肆仟伍佰陸拾柒元整 |
個人綜所稅累進稅額試算 | 🟡 稅率年年變,舊實作常過時 | ❌ 無 | ✅ TaxBracketCalculator 對應 2025 財政部 公告 |
WCAG 2.2 AA 無障礙 | ❌ aria-* 屬性多半缺失 | 🟡 依套件而定 | ✅ 全部 21 元件含 aria-label / aria-invalid / role=alert |
TypeScript 完整型別 | ❌ 通常 any | 🟡 依套件而定 | ✅ 嚴格 mode、validator 結果完整 union 型別 |
執行依賴數量 | — 0 (但你自己寫 + 維護) | 🟡 通常 5–20 個 transitive deps | ✅ 0 — 元件僅依賴 React |
CI / 自動測試 | ❌ 罕見 | 🟡 依套件而定 | ✅ GitHub Actions: typecheck + 157 tests + build + audit |
邊界誠實 (GOVT_READINESS.md) | ❌ 通常無文件 | ❌ 通常過度承諾 | ✅ 公開列出 10 項「不適合」情境 |
npx taiwan-ui add twid-input