使用測試驅動的開發流程,寫一個 api api/id-check
,輸入字串之後,回傳該字串是否為合法的身分證字號。
身分證字號第一個字一定是大寫的英文字母,其餘 9 個字必須為數字。
檢查編碼時,第一個英文字母會先依下表轉換為數字:
字母 | 數字 |
---|---|
A | 10 |
B | 11 |
C | 12 |
D | 13 |
E | 14 |
F | 15 |
G | 16 |
H | 17 |
I | 18 |
J | 19 |
K | 20 |
L | 21 |
M | 22 |
N | 23 |
O | 24 |
P | 25 |
Q | 26 |
R | 27 |
S | 28 |
T | 29 |
U | 30 |
V | 31 |
W | 32 |
X | 33 |
Y | 34 |
Z | 35 |
轉換後的身分證字號(共11位數字)每一位數均有固定的權重。
權重由左往右依序為 『1 9 8 7 6 5 4 3 2 1 1』。
判斷身分證字號是否正確的方法為:各位數字與其相對應的權重相乘後再加總。
加總後的結果若為 10 的倍數,則為合法身分證字號。