ตัวอย่างรหัสประชาชน
1-2015-41462-23-4 Check Digit ของรหัสประชาชนนี้คือเลข 4 (เลขตัวสุดท้าย)
ขั้นตอนที่ 1 เอาเลข 12 หลักมา เขียนแยกหลักกันก่อน (หลักที่ 13 ไม่ต้องเอามา) จะได้ 120154146223
ขั้นตอนที่ 2 เอาเลข 12 หลักนั้นมา คูณเข้ากับเลขประจำหลักของมัน
รหัสบัตร 1 2 0 1 5 4 1 4 6 2 2 3 ตัวคูณ 13 12 11 10 9 8 7 6 5 4 3 2
จะได้ 1*13+2*12+0*11+1*10+5*9+4*8+1*7+4*6+6*5+2*4+2*3+3*2
ผลคูณ 13+24+0+10+45+32+7+24+30+8+6+6
ขั้นตอนที่ 3 เอาผลคูณทั้ง 12 ตัวมา บวกกันทั้งหมด จะได้ 13+24+0+10+45+32+7+24+30+8+6+6=205
ขั้นตอนที่ 4 เอาเลขที่ได้จากขั้นตอนที่ 3 มา mod 11 (หารเอาเศษ) จะได้ 205 mod 11 = 7
ขั้นตอนที่ 5 เอา 11 ตั้ง ลบออกด้วย เลขที่ได้จากขั้นตอนที่ 4 จะได้ 11-7 = 4 (จะได้ 4 เป็นเลขในหลัก Check Digit)
ถ้าเกิด ลบแล้วได้ออกมาเป็นเลข 2 หลัก ให้เอาเลขในหลักหน่วยมาเป็น Check Digit (เช่น 11 ให้เอา 1 มา, 10 ให้เอา 0 มา เป็นต้น)
[code]function checkDigilCardID { const pattern = /[0-9]{13}/; if (!id.match(pattern)) { return false; } let sum = 0; for (let i = 0; i < 12; i += 1) { sum += parseInt(id.substr(i, 1), 10) * ((13) - i); } if ((11 - (sum % 11)) % 10 !== parseInt(id.substr(12, 1), 10)) { return false; } return true; }[/code]
สุ่มเลขบัตรประชาชน 13 หลัก
[code lang="javascript"]function getNum() { var r = rand(1, 8), t = rand(0, 9), e = rand(0, 9), n = rand(0, 9), a = rand(0, 9), c = rand(0, 9), i = rand(0, 9), u = rand(0, 9), l = rand(0, 9), s = rand(0, 9), o = rand(0, 9), d = rand(0, 9), g = getLastNum(r, t, e, n, a, c, i, u, l, s, o, d); return '' + r + t + e + n + a + c + i + u + l + s + o + d + g; } function getLastNum() { var r = arguments, t = 13 * r[0] + 12 * r[1] + 11 * r[2] + 10 * r[3] + 9 * r[4] + 8 * r[5] + 7 * r[6] + 6 * r[7] + 5 * r[8] + 4 * r[9] + 3 * r[10] + 2 * r[11], e = 11 - t % 11; return e > 9 && (e %= 10), e; }[/code]