[{"data":1,"prerenderedAt":355},["ShallowReactive",2],{"content-zh-TW-getting-started":3},{"doc":4,"debug":325},{"id":5,"title":6,"body":7,"description":23,"extension":319,"meta":320,"navigation":88,"path":321,"seo":322,"stem":323,"__hash__":324},"content\u002Fzh-TW\u002Fgetting-started.md","快速開始",{"type":8,"value":9,"toc":311},"minimark",[10,13,17,46,67,71,108,115,151,181,184,199,202,205,234,237,262,273,276,307],[11,12,6],"h1",{"id":6},[14,15,16],"h2",{"id":16},"安裝",[18,19,24],"pre",{"className":20,"code":21,"language":22,"meta":23,"style":23},"language-bash shiki shiki-themes github-light","dotnet add package Ozakboy.TaiwanKit.TwIdValidator\n","bash","",[25,26,27],"code",{"__ignoreMap":23},[28,29,32,36,40,43],"span",{"class":30,"line":31},"line",1,[28,33,35],{"class":34},"s7eDp","dotnet",[28,37,39],{"class":38},"sYBdl"," add",[28,41,42],{"class":38}," package",[28,44,45],{"class":38}," Ozakboy.TaiwanKit.TwIdValidator\n",[47,48,49,50,53,54,53,57,53,60,53,63,66],"p",{},"支援框架：",[25,51,52],{},"netstandard2.0"," \u002F ",[25,55,56],{},"netstandard2.1",[25,58,59],{},"net8.0",[25,61,62],{},"net9.0",[25,64,65],{},"net10.0","，零執行期依賴。",[14,68,70],{"id":69},"身分證驗證三種證號自動辨識","身分證驗證（三種證號自動辨識）",[18,72,76],{"className":73,"code":74,"language":75,"meta":23,"style":23},"language-csharp shiki shiki-themes github-light","using Ozakboy.TaiwanKit.TwIdValidator;\n\nTwId.IsValid(\"A123456789\");   \u002F\u002F true  本國人身分證\nTwId.IsValid(\"A800000014\");   \u002F\u002F true  新式外來人口統一證號（2021+）\nTwId.IsValid(\"AB12345677\");   \u002F\u002F true  舊式居留證號（2031 年前有效）\n","csharp",[25,77,78,83,90,96,102],{"__ignoreMap":23},[28,79,80],{"class":30,"line":31},[28,81,82],{},"using Ozakboy.TaiwanKit.TwIdValidator;\n",[28,84,86],{"class":30,"line":85},2,[28,87,89],{"emptyLinePlaceholder":88},true,"\n",[28,91,93],{"class":30,"line":92},3,[28,94,95],{},"TwId.IsValid(\"A123456789\");   \u002F\u002F true  本國人身分證\n",[28,97,99],{"class":30,"line":98},4,[28,100,101],{},"TwId.IsValid(\"A800000014\");   \u002F\u002F true  新式外來人口統一證號（2021+）\n",[28,103,105],{"class":30,"line":104},5,[28,106,107],{},"TwId.IsValid(\"AB12345677\");   \u002F\u002F true  舊式居留證號（2031 年前有效）\n",[47,109,110,111,114],{},"需要細節時用 ",[25,112,113],{},"Validate"," 拿完整結果：",[18,116,118],{"className":73,"code":117,"language":75,"meta":23,"style":23},"TwIdResult r = TwId.Validate(\"A123456789\");\n\u002F\u002F r.IsValid    → true\n\u002F\u002F r.Kind       → TwIdKind.NationalId\n\u002F\u002F r.Gender     → Gender.Male\n\u002F\u002F r.RegionName → \"臺北市\"\n\u002F\u002F r.Failure    → ValidationFailure.None\n",[25,119,120,125,130,135,140,145],{"__ignoreMap":23},[28,121,122],{"class":30,"line":31},[28,123,124],{},"TwIdResult r = TwId.Validate(\"A123456789\");\n",[28,126,127],{"class":30,"line":85},[28,128,129],{},"\u002F\u002F r.IsValid    → true\n",[28,131,132],{"class":30,"line":92},[28,133,134],{},"\u002F\u002F r.Kind       → TwIdKind.NationalId\n",[28,136,137],{"class":30,"line":98},[28,138,139],{},"\u002F\u002F r.Gender     → Gender.Male\n",[28,141,142],{"class":30,"line":104},[28,143,144],{},"\u002F\u002F r.RegionName → \"臺北市\"\n",[28,146,148],{"class":30,"line":147},6,[28,149,150],{},"\u002F\u002F r.Failure    → ValidationFailure.None\n",[47,152,153,154,157,158,53,161,53,164,53,167,170,171,53,174,53,177,180],{},"驗證失敗時 ",[25,155,156],{},"Failure"," 會告訴你原因（",[25,159,160],{},"NullOrEmpty",[25,162,163],{},"InvalidLength",[25,165,166],{},"InvalidFormat",[25,168,169],{},"InvalidChecksum","）；格式可辨識但檢核碼錯誤時，",[25,172,173],{},"Kind",[25,175,176],{},"Gender",[25,178,179],{},"RegionName"," 仍會回填，方便提示使用者「格式對但號碼錯」。",[14,182,183],{"id":183},"統一編號驗證",[18,185,187],{"className":73,"code":186,"language":75,"meta":23,"style":23},"TwBan.IsValid(\"04595257\");            \u002F\u002F true\nTwBan.Validate(\"04595258\").Failure;   \u002F\u002F ValidationFailure.InvalidChecksum\n",[25,188,189,194],{"__ignoreMap":23},[28,190,191],{"class":30,"line":31},[28,192,193],{},"TwBan.IsValid(\"04595257\");            \u002F\u002F true\n",[28,195,196],{"class":30,"line":85},[28,197,198],{},"TwBan.Validate(\"04595258\").Failure;   \u002F\u002F ValidationFailure.InvalidChecksum\n",[47,200,201],{},"已內建財政部 2021 年 4 月新制（加權總和為 5 的倍數）與第 7 碼為 7 的特例。",[14,203,204],{"id":204},"手機號碼驗證與正規化",[18,206,208],{"className":73,"code":207,"language":75,"meta":23,"style":23},"TwPhone.IsValid(\"0912345678\");   \u002F\u002F true（嚴格模式：09 開頭 10 碼純數字）\n\n\u002F\u002F 使用者輸入常帶國碼與分隔符——用 TryNormalize\nTwPhone.TryNormalize(\"+886-912-345-678\", out string n);   \u002F\u002F true, n = \"0912345678\"\nTwPhone.TryNormalize(\"０９１２３４５６７８\", out n);        \u002F\u002F true（全形數字也可）\n",[25,209,210,215,219,224,229],{"__ignoreMap":23},[28,211,212],{"class":30,"line":31},[28,213,214],{},"TwPhone.IsValid(\"0912345678\");   \u002F\u002F true（嚴格模式：09 開頭 10 碼純數字）\n",[28,216,217],{"class":30,"line":85},[28,218,89],{"emptyLinePlaceholder":88},[28,220,221],{"class":30,"line":92},[28,222,223],{},"\u002F\u002F 使用者輸入常帶國碼與分隔符——用 TryNormalize\n",[28,225,226],{"class":30,"line":98},[28,227,228],{},"TwPhone.TryNormalize(\"+886-912-345-678\", out string n);   \u002F\u002F true, n = \"0912345678\"\n",[28,230,231],{"class":30,"line":104},[28,232,233],{},"TwPhone.TryNormalize(\"０９１２３４５６７８\", out n);        \u002F\u002F true（全形數字也可）\n",[14,235,236],{"id":236},"測試假資料產生",[18,238,240],{"className":73,"code":239,"language":75,"meta":23,"style":23},"TwId.Generate(TwIdKind.NationalId, Gender.Female);   \u002F\u002F 例如 \"B234567891\"\nTwId.Generate(TwIdKind.OldResidentId, seed: 42);     \u002F\u002F 指定 seed 可重現\nTwBan.Generate();                                     \u002F\u002F 例如 \"51233458\"\nTwPhone.Generate();                                   \u002F\u002F 例如 \"0987654321\"\n",[25,241,242,247,252,257],{"__ignoreMap":23},[28,243,244],{"class":30,"line":31},[28,245,246],{},"TwId.Generate(TwIdKind.NationalId, Gender.Female);   \u002F\u002F 例如 \"B234567891\"\n",[28,248,249],{"class":30,"line":85},[28,250,251],{},"TwId.Generate(TwIdKind.OldResidentId, seed: 42);     \u002F\u002F 指定 seed 可重現\n",[28,253,254],{"class":30,"line":92},[28,255,256],{},"TwBan.Generate();                                     \u002F\u002F 例如 \"51233458\"\n",[28,258,259],{"class":30,"line":98},[28,260,261],{},"TwPhone.Generate();                                   \u002F\u002F 例如 \"0987654321\"\n",[263,264,265],"blockquote",{},[47,266,267,268,272],{},"⚠ 產生的號碼",[269,270,271],"strong",{},"僅格式合法","，不對應真實人物或公司，僅供測試資料使用。",[14,274,275],{"id":275},"行為約定",[277,278,279,295,298,304],"ul",{},[280,281,282,283,286,287,290,291,294],"li",{},"驗證方法",[269,284,285],{},"一律不拋例外","——無效輸入（含 ",[25,288,289],{},"null","）回傳 ",[25,292,293],{},"false"," \u002F 失敗結果",[280,296,297],{},"輸入自動去除前後空白、英文轉大寫",[280,299,300,301,303],{},"已停用縣市代碼（L\u002FR\u002FS\u002FY）驗證時仍接受（歷史證號仍有效），",[25,302,179],{}," 附「（已停用）」標注；產生器只使用現行代碼",[280,305,306],{},"純函式、線程安全，可在任何多執行緒場景直接使用",[308,309,310],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":23,"searchDepth":85,"depth":92,"links":312},[313,314,315,316,317,318],{"id":16,"depth":85,"text":16},{"id":69,"depth":85,"text":70},{"id":183,"depth":85,"text":183},{"id":204,"depth":85,"text":204},{"id":236,"depth":85,"text":236},{"id":275,"depth":85,"text":275},"md",{},"\u002Fzh-tw\u002Fgetting-started",{"title":6,"description":23},"zh-TW\u002Fgetting-started","bnhyMG1Jz16nb-iGyAEQH__Nb4aoR99zmUhH05AtfIQ",{"matched":326,"target":327,"all":328},"fallback (.all() + manual match)","\u002Fzh-TW\u002Fgetting-started",[329,334,339,344,349,354],{"path":330,"id":331,"stem":332,"title":333},"\u002Fen\u002Fapi","content\u002Fen\u002Fapi.md","en\u002Fapi","API Reference",{"path":335,"id":336,"stem":337,"title":338},"\u002Fen\u002Fchangelog","content\u002Fen\u002Fchangelog.md","en\u002Fchangelog","Changelog",{"path":340,"id":341,"stem":342,"title":343},"\u002Fen\u002Fgetting-started","content\u002Fen\u002Fgetting-started.md","en\u002Fgetting-started","Getting Started",{"path":345,"id":346,"stem":347,"title":348},"\u002Fzh-tw\u002Fapi","content\u002Fzh-TW\u002Fapi.md","zh-TW\u002Fapi","API 參考",{"path":350,"id":351,"stem":352,"title":353},"\u002Fzh-tw\u002Fchangelog","content\u002Fzh-TW\u002Fchangelog.md","zh-TW\u002Fchangelog","更新紀錄",{"path":321,"id":5,"stem":323,"title":6},1783231662482]