マイナンバーのチェックディジット計算
[2018-08-07 おことわり] JavaScriptで書かれたマイナンバーのチェックディジット計算プログラムを公開していましたが,個人情報保護委員会様から,入力されたものがネットに流れないことはソースで確認したが,マイナンバー収集を誤認するようなページは好ましくないのではないかというご意見をいただきました。確かにもっともなことですので,ソースコードを示すだけにとどめることにしました。このソースを打ち込めば確認できますので,ご自分でお試しください。
<p><label>マイナンバーの先頭11桁:<input id="input" size="13" onchange="check()"></label></p>
<p>マイナンバーの最後の桁(チェックディジット):<input id="output" size="5" readonly></p>
<script>
function check() {
let r = "Error";
const x = document.getElementById("input").value;
if (x.length == 11) {
let s = 0;
for (let n = 1; n <= 11; n++) {
let p = x[11-n];
let q = (n <= 6) ? n+1 : n-5;
s += p * q;
}
s %= 11;
r = (s <= 1) ? 0 : 11 - s;
}
document.getElementById("output").value = r;
}
</script>
参考:総務省令第八十五号第五条