工作上偶爾會碰到需要手寫或列印國字金額的業務, 寫錯有點麻煩, 雖然可以上網找國字大寫或列印下來(跟每次寫信封地址很像, 不常用就得上網找範例), 但還要花費個幾秒鐘思考, 想說叫 AI 幫忙找個簡單方案, 就生出個書籤版本(bookmarklet), 只要加入到書籤工作列就可使用, 用 Gemini, ChatGPT, Claude 網頁版反覆檢查撰寫而成, 因為「零」的中文字元在轉換的時候容易出錯, 所以另外處理, 程式碼如下, 另外附上 pretiffy 以後的版本
數字轉中文大寫金額 Bookmarklet
1 | javascript:(function()%7Bvar%20s%3Dprompt(%22%E8%AB%8B%E8%BC%B8%E5%85%A5%E6%95%B8%E5%AD%97%EF%BC%9A%22)%3Bif(!s)return%3Btry%7Bvar%20n%3DBigInt(s.replace(%2F%5B%2C%20%5D%2Fg%2C%22%22))%3Bvar%20z0%3DString.fromCharCode(38646)%3Bvar%20d%3Dz0%2B%22%E5%A3%B9%E8%B2%B3%E5%8F%83%E8%82%86%E4%BC%8D%E9%99%B8%E6%9F%92%E6%8D%8C%E7%8E%96%22%2Cu%3D%5B%22%22%2C%22%E6%8B%BE%22%2C%22%E4%BD%B0%22%2C%22%E4%BB%9F%22%5D%2Cb%3D%5B%22%22%2C%22%E8%90%AC%22%2C%22%E5%84%84%22%2C%22%E5%85%86%22%2C%22%E4%BA%AC%22%5D%3Bif(n%3D%3D%3D0n)%7Balert(z0%2B%22%E5%9C%93%E6%95%B4%22)%3Breturn%7Dfunction%20f(m)%7Bvar%20r%3D%22%22%2Cp%3D0%2Cl%3Dfalse%3Bwhile(m%3E0n)%7Bvar%20g%3DNumber(m%2510000n)%3Bif(g%3D%3D%3D0)%7Bif(r!%3D%3D%22%22)l%3Dtrue%7Delse%7Bvar%20t%3D%22%22%2Cv%3Dg%3Bfor(var%20i%3D0%3Bi%3C4%3Bi%2B%2B)%7Bvar%20x%3Dv%2510%3Bif(x%3D%3D%3D0)%7Bif(t!%3D%3D%22%22%26%26t%5B0%5D!%3D%3Dz0)t%3Dz0%2Bt%7Delse%7Bt%3Dd%5Bx%5D%2Bu%5Bi%5D%2Bt%7Dv%3DMath.floor(v%2F10)%7Dif(l)%7Bif(r!%3D%3D%22%22%26%26r%5B0%5D!%3D%3Dz0)r%3Dz0%2Br%3Bl%3Dfalse%7Dr%3Dt%2Bb%5Bp%5D%2Br%7Dm%3Dm%2F10000n%3Bp%2B%2B%7Dreturn%20r.replace(new%20RegExp(%22%5E%22%2Bz0%2B%22%2B%22)%2C%22%22)%7Dvar%20res%3Df(n)%2B%22%E5%9C%93%E6%95%B4%22%3Bprompt(%22%E6%A0%B8%E5%B0%8D%E9%87%91%E9%A1%8D%EF%BC%9A%22%2Bn.toLocaleString()%2B%22%5Cn%E8%BD%89%E6%8F%9B%E6%88%90%E5%8A%9F%EF%BC%81%E6%8C%89%20Ctrl%2BC%20%E8%A4%87%E8%A3%BD%EF%BC%9A%22%2Cres)%7Dcatch(e)%7Balert(%22%E6%A0%BC%E5%BC%8F%E9%8C%AF%E8%AA%A4%22)%7D%7D)()%3B |
pretiffy 版本 + 註解
將阿拉伯數字轉換為中文大寫金額的 JavaScript bookmarklet。
1 | (function () { |
⚠️ AI Disclosure / 免責聲明
本文部分內容或程式碼由 AI 協作產生,並以 “AS IS” (現狀) 提供,不負任何明示或暗示之擔保責任。讀者在使用、執行或部署前,務必自行驗證其正確性與安全性。作者不對因引用此內容而產生的任何直接或間接損害負責。