iT邦幫忙

2022 iThome 鐵人賽

DAY 19
0
Modern Web

自己工具,自己 React - React學習系列 第 19

【D19】 小工具:身分證製造機(part 1)-規則

  • 分享至 

  • xImage
  •  

這次製作新的小工具-身分證製造機!

身分證製造機這工具個人很常用,因為要模擬客戶進行交易、帳務處理、顧客管理等等都會要用到,而且還要可以批次產生,因此才想到要做這個工具。讓我們開始建立這個工具吧!

身分證規則

要做身分證製造機之前,需要先了解身分證的規則,了解之後再實作成程式碼。(維基百科內容跟《國民身分證及戶口名簿格式內容製發相片影像檔建置管理辦法》的規則相同,就以好閱讀的維基百科為主)

根據維基百科說明:

目前的國民身分證統一編號(身分證字號)一共有十碼,起首為一個大寫英文字母與接續的九個阿拉伯數字。

  • 首碼:區域碼

首碼英文代碼是以配賦國民身分證統一編號的戶籍地(報戶口之地區)來區分的。

所以第一個字為英文,表示報戶口的地方。但這個地方不一定是出生地,是為報戶口的地方,而外國人就是辦理地的意思。

地區與英文對照表如下:

代碼 數值 縣市 備註
A 10 臺北市
B 11 臺中市
C 12 基隆市
D 13 臺南市
E 14 高雄市
F 15 新北市
G 16 宜蘭縣
H 17 桃園市
I 34 嘉義市
J 18 新竹縣
K 19 苗栗縣
M 21 南投縣
N 22 彰化縣
O 35 新竹市
P 23 雲林縣
Q 24 嘉義縣
T 27 屏東縣
U 28 花蓮縣
V 29 臺東縣
W 32 金門縣
X 30 澎湖縣
Z 33 連江縣
L 20 臺中縣 2010年12月25日停止使用
R 25 臺南縣
S 26 高雄縣
Y 31 陽明山管理局 1974年1月1日停止使用
  • 第二碼:性別碼

第二碼至第九碼為數字,其中第二碼表示性別,為了區分外來人口,所以總共有四組號碼:

代碼 含義
1
2
8 外來人口-男
9 外來人口-女
  • 第三碼:身份碼

原先的第三碼起為流水號,從2003年7月1日起更改為紀錄設籍前的身分碼,區別在臺灣定居之取得國籍之原外國人、原無戶籍國民、原港澳居民、及原大陸地區人民。

不過在法條的第三項:前項編號首碼以英文字母代表直轄市、縣(市)別,第二碼至第十碼為數字碼,第二碼為性別碼,第十碼為檢查碼。,這部分還在查法條,看看哪邊有寫。

代碼 含義
6 取得國籍之外國人
7 原無戶籍國民
8 原港澳居民
9 原大陸地區人民
0~5 其他
  • 第四~九碼:流水號

就流水編號,沒有啥意義,就是這樣XDD

  • 第十碼:檢查碼

也就是 check digit,這邊就先不討論,因為這是最複雜的地方,就只是先把公式列下來,之後再逐一討論。這也是本工具最複雜的地方。

首先要把第一碼英文轉成兩位數數字,接著結合後面的九位數字,接著把每一個數字依序乘上 19876543211,然後再相加,最後再用模除(mod)10。這個數值可以整除,就是檢查碼。

或是把前九個乘上 1987654321,相加後模除 10,取得於術後用 10 減去,剩下的值也就是檢查碼。


後記

身分證有點複雜,為了製作這個小工具,會花不少時間,就用這個工具當作壓軸作品吧!


上一篇
【D18】 再探 props:修改上下層資料(part 2)
下一篇
【D20】 小工具:身分證製造機(part 2)-身分證檢查功能
系列文
自己工具,自己 React - React學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言