跟台灣相關的工具庫
純值類型均有以下特性
- 提供隱含轉換至原生相似、對應類型
- 無須預先註冊轉換器,原生支援
Newtonsoft.Json
與System.Text.Json
的序列化與反序列化 - 原生支援
JavaScriptSerializer
的直接序列化與反序列化
- 提供中文大小寫數字與
decimal
間的隱含互換,但解析部分不支援小數點 - 可補足
InternationalNumericFormatter.dll
中無法處理的部分
using TaiwanUtilities;
var expect = 2369;
var actual = ChineseDecimal.Parse("貳佰參陸九");
// result: pass
Assert.Equal<decimal>(expect, actual);
- 支援中文日期時間字串解析
- 可在
DateTime
與DateTimeOffset
結構之間隱含轉換 - 民國年與西元年間的轉換,另外可處理民國前的時間
using TaiwanUtilities;
var expect = new DateTime(1934, 6, 9);
var actual = RocDateTime.Parse("民國貳參年陸月玖日");
// result: pass
Assert.Equal<DateTime>(expect, actual);
- 此功能開發中,不建議在生產環境使用
- 台灣地址解析
- 支援區域的各種組合,包含市、縣、區、鎮、鄉、里、村、鄰等
- 支援地址的各種格式,包含街道、巷弄、路線等
- 支援地址的門牌號碼、樓層、單元等
- 詳細請參考 docs/experimental.md
using TaiwanUtilities;
var expect = "信義路二段";
var actual = PostalAddress.Parse("臺北市中正區信義路二段100號").Road;
// result: pass
Assert.Equal<string>(expect, actual);
- 中華民國身分證字號驗證驗證
- 新/舊版臺灣地區無戶籍國民、外國人、大陸地區人民及香港或澳門居民之專屬代號驗證
- 營利事業統一編號驗證 (支援新/舊版統一編號檢查)
- 自然人憑證編號驗證
- 電子發票手機條碼驗證
- 電子發票捐贈碼驗證
using TaiwanUtilities;
// result: pass
Assert.True(TaiwanIdValidator.IsIdentityCardNumber("Y190290172"));
- 此功能開發中,不建議在生產環境使用
- 台灣郵遞區號查詢功能(目前僅支援三碼)
using TaiwanUtilities;
Assert.Equal<string>("100", ZipCode.Find("臺北市中正區"));
RocDateTime
中的IsHoliday
屬性來自 ruyutai/TaiwanCalendarTaiwanIdValidator
原始版本為 enylin/taiwan-id-validator,該儲存庫採用 MIT 授權條款
此儲存庫基於「取之於社群,回饋於社群」的愛與信念而存在,感謝以上原作者為開源社群的貢獻