工具小筆記|解決「冒號與底線」轉換的奇怪 Bug

更新 發佈閱讀 4 分鐘

從一個不起眼的 Bug 開始

最近在做 LINE Bot 設定功能時,收到一個奇怪的使用者回報:

同樣是輸入「設定1_台中_07:30_平日」,系統卻有時候抓不到時間。

仔細一看,問題不在邏輯,而是在 輸入文字的符號 ——

原來有些手機鍵盤輸出的「冒號」並不是半形的 :

而是全形 ,甚至還有一些更冷門的變體字元。

底線 _ 也有同樣的情況。


我們發現了什麼?

在實際測試中,我遇到了這些奇妙的符號:

符號 Unicode 名稱 最終轉換 : U+FF1A 全形冒號 Fullwidth Colon : ﹕ U+FE55 Small Colon : ꞉ U+A789 Modifier Letter Colon : ː U+02D0 Modifier Letter Triangular Colon : ∶ U+2236 Ratio : _ U+FF3F 全形底線 Fullwidth Low Line _ ﹏ U+FE4F Wavy Low Line _

這些符號看起來幾乎一模一樣,但對程式來說是完全不同的字元。

如果不處理,資料比對就會失敗。


我的解法:normalizeInput()

我寫了一個小工具函式,把常見的變體全部轉成標準半形符號:

function normalizeInput(str) {
if (!str) return "";

return str
// 台 → 臺
.replace(//g, "臺")
// 冒號變體
.replace(/[\uFF1A\uFE55\uA789\u02D0\u2236]/g, ":")
// 底線變體
.replace(/[\uFF3F\uFE4F]/g, "_")
// 去除前後空白
.trim();
}

這樣,不管使用者輸入什麼奇怪的冒號或底線,都能正確比對。


實測紀錄

IN : 設定1_台中_07:30_平日
OUT: 設定1_臺中_07:30_平日

IN : 設定1_臺中_0730_平日
OUT: 設定1_臺中_07:30_平日

IN : 設定1꞉臺中_07ː30﹏平日
OUT: 設定1:臺中_07:30_平日

🪄 給非工程師的版本

想像一下,你在餐廳點餐,跟店員說「我要牛肉麵」。

結果店員聽到的卻是「牛☆肉☆麵」,因為你用了奇怪的發音符號。 雖然你看起來講的是同一句話,但對系統(或是店員的收銀機)來說,這已經是不同的字了。

我們這次的問題就是一樣的:

  • 你以為打的是 :(半形冒號)
  • 手機其實輸出的是 (全形冒號)或其他更罕見的符號

解法就是把這些「長得像」的符號全部換成系統能認得的標準版本,

就像在點餐時,統一用店員熟悉的標準發音。


💬 你有遇過類似的符號坑嗎?

留言跟我分享你踩過的輸入法陷阱, 也許下一篇我們可以一起整理一份「輸入法黑名單」🤭


留言
avatar-img
留言分享你的想法!
avatar-img
麟製所
2會員
33內容數
軟體、旅遊分享
麟製所的其他內容
2025/11/03
本文深入比較臺鐵 LINE Bot 的免費、標準、進階會員方案,詳細列出各方案的功能、配額、適合族群及升級理由。透過「快速選擇指南」與「實際使用情境分析」,協助用戶依據通勤頻率、路線數量、時間敏感度等需求,找到最適合的方案。文末並提供購買、兌換流程、常見問題 Q&A 及短期旅遊版方案介紹。
2025/11/03
本文深入比較臺鐵 LINE Bot 的免費、標準、進階會員方案,詳細列出各方案的功能、配額、適合族群及升級理由。透過「快速選擇指南」與「實際使用情境分析」,協助用戶依據通勤頻率、路線數量、時間敏感度等需求,找到最適合的方案。文末並提供購買、兌換流程、常見問題 Q&A 及短期旅遊版方案介紹。
2025/10/31
文章介紹臺鐵 LINE Bot 的「到站提醒」功能,如何解決通勤族常遇到的坐過站問題。詳細說明功能特色、使用設定、不同會員等級的提醒次數、配額管理,以及實際應用情境,並預告未來的「進站提醒」功能。
Thumbnail
2025/10/31
文章介紹臺鐵 LINE Bot 的「到站提醒」功能,如何解決通勤族常遇到的坐過站問題。詳細說明功能特色、使用設定、不同會員等級的提醒次數、配額管理,以及實際應用情境,並預告未來的「進站提醒」功能。
Thumbnail
2025/10/31
厭倦了和伴侶或室友為了金錢爭執?嘗試過無數記帳 App 卻總不滿意?本文介紹一款由個人需求出發,完全免費、整合個人與共同記帳功能、資料自主掌控、介面簡潔易用的記帳系統。詳細解析系統特色、實際使用情境、多樣化實用功能、安全性,並對比市售 App。
Thumbnail
2025/10/31
厭倦了和伴侶或室友為了金錢爭執?嘗試過無數記帳 App 卻總不滿意?本文介紹一款由個人需求出發,完全免費、整合個人與共同記帳功能、資料自主掌控、介面簡潔易用的記帳系統。詳細解析系統特色、實際使用情境、多樣化實用功能、安全性,並對比市售 App。
Thumbnail
看更多