基本的身分證檢查已經完成,可以檢查長度、地點、性別等等,但是缺少了檢查檢查碼的部分,這篇會說明如何建立檢查碼。
增加檢核碼功能在 IDChecker.js
中,這邊命名為 checkCkDigit
。
在這個功能中,會有幾個動作:把地點代碼換成數字、把數值計算、模數計算、檢查結果這幾個部分。這程式碼已經在 Day21說明,這邊不詳述。
.jsx
在匯入的地方把這個功能引入,就可以在 React 中使用。
import { checkBasic, checkCkDigit } from "./IDChecker";
當加入後,增加新功能,讓當按鈕被點擊後有個 handle 可以進行處理:
function IDCheck_checkDigit() {
const r = checkCkDigit(id);
setckDigitResult(r);
console.log(`"result: ${ckDigitResult}, ${r}"`);
}
本日會進行增加檢查驗證碼的功能,用來做區別,因此顯示的畫面會是:
return (
<div>
<h1>檢查身份證</h1>
<div>
<label>輸入身分證字號:</label>
<input
itemType="text"
className="idno"
onChange={(e) => setId(e.target.value)}
></input>
<button onClick={IDCheck}>檢查</button>
<button onClick={IDCheck_checkDigit}>檢查:檢查碼</button>
</div>
<div>
<label>
身分證:{id},結果:{result}
</label>
</div>
<div>
<label>
身分證:{id},檢查結果:{ckDigitResult}
</label>
</div>
</div>
);
這樣在 log
中可以看到檢查結果都正確囉!(但是這樣卻沒有在 label
顯示正確)
儘管功能加上去了,但是顯示卻出問題,修改顯示問題是明日最大的課題。只要修正,這個檢查功能就完成了!