การตรวจสอบรหัสบัตรประชาชน จัดทำโดย : first พิมพ์
 Untitled Document การตรวจสอบรหัสบัตรประชาชน

เวลาจะตรวจสอบว่าข้อมูลที่กรอกมาถูกต้องรึเปล่า จะต้องคำนวณ Check Digit จากเลขหลักอื่นๆ
เพื่อเปรียบเทียบกับ Check Digit ที่กรอกมาว่าตรงกันมั้ย ถ้าตรงกันก็แสดงว่าข้อมูลถูกต้องไม่ผิด ไม่มั่ว
แต่ถ้าไม่ตรงกัน ก็แปลว่า ข้อมูลที่กรอกมามีข้อมูลซักหลัก หรือ สองหลักที่ผิด ก็สามารถเตือนให้ผู้ใช้ทราบและกรอกใหม่
อีกครั้งได้

Check Digit คืออะไรหนอ ?

Check Digit เป็นตัวเลข 1 หลัก ที่เกิดจากการนำเลขหลักอื่นๆ มา บวก ลบ คูณ หาร กัน และ
Check Digit นี่หละครับ จะช่วยใหตรวจสอบในเบื้องต้นได้ว่า ข้อมูลที่กรอกมาถูกต้องรึเปล่า

รหัสประจำตัวประชาชน (ขอเรียกสั้นๆว่า รหัสประชาชน) ทจะมาตรวจกันวันนี้เป็นรหัสประชาชน
ของคนไทย ก่อนอื่น ให้เพื่อนๆ หยิบบัตรประชาชนของเพื่อนๆ ขึ้นมาดูกันเลยครับ

รหัสประจำตัวจะอยู่ในรูป x-xxxx-xxxxx-xx-x (เลข 13 หลัก) แต่รู้ป่ะว่า รหัสประจำตัวจริงๆแล้วมีแค่ 12 หลักเท่านั้น (12 หลักแรก) แต่เลขตัวสุดท้ายเนี่ย เป็น Check Digit ครับ

ตัวอย่างรหัสประชาชน

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 มา เป็นต้น)

ลองมาดูโปรแกรมกันดีกว่า สร้างไฟล์ชื่อ checkidcard.html พิมพ์โค้ดดังนี้นะครับ
1.เอาโค้ดส่วนนี้ไปวางในส่วนของ Head

<script language="javascript">
function checkID(id)
{
if(id.length != 13) return false;
for(i=0, sum=0; i < 12; i++)
sum += parseFloat(id.charAt(i))*(13-i); if((11-sum%11)%10!=parseFloat(id.charAt(12)))
return false; return true;}

function checkForm()
{ if(!checkID(document.form1.txtID.value))
alert('รหัสประชาชนไม่ถูกต้อง');
else alert('รหัสประชาชนถูกต้อง เชิญผ่านได้');}
</script>


2.เอาโค้ดส่วนนี้ไปวางในส่วนของ Body

<form name="form1" onsubmit="checkForm(); return false;">
รหัสประจำตัวประชาชน : <input type="text" name="txtID" />
<input type="submit" value="ตรวจสอบ" />
</form>


3.ทดลองโปรแกรมได้ที่นี่เลยนะครับ

รหัสประจำตัวประชาชน :  
หมายเหตุ เราได้เรียนรู้วิธีการตรวจสอบเบื้องต้น (ข้อย้ำว่าเบื้องต้น) เพราะรหัสประชาชนที่ผู้ใช้กรอก อาจมี Check Digit ที่ถูกต้อง แต่อาจเป็นรหัสประชาชนที่ไม่มีอยู่จริงก็ได

ที่มา : WattaR จาก http://www.widcom-nu.com/forums/index.php?showtopic=253&mode=threaded

คุณอาจสนใจ
การแทรก และลบ Column ใน Query
คุณอ้อม (19,677 - 30 เม.ย. 50)
เชื่อมต่อ Flash MX กับเท็กซ์ไฟล์ และ XML (ตอนที่ 2)
Ching Ching (26,297 - 29 ก.ย. 50)
ยกเลิกแจ้งเตือน Unused Icons
เว็บไทยดีดี (13,656 - 22 ก.ย. 50)
เจาะลึกการใช้ Symbolism Tool และ Data Driven Graphic กับงานพิมพ์ และงานเว็บ (ตอนจบ)
ธนิศา ไชยภูริพัฒน์ (32,460 - 19 ม.ค. 51)
การทำตัวอักษรเลนส์นูน
Black-Hawk (64,303 - 21 ม.ค. 51)
แนะนำการใช้งาน Filter -> Texture
first (81,663 - 28 ม.ค. 51)
Filter และ Effect เมื่อไหร่ควรเลือกใช้อย่างไหน
ธนิศา ไชยภูริพัฒน (45,389 - 19 ม.ค. 51)
ชนิดข้อมูลของตัวแปร
Mr.POP (63,796 - 05 พ.ย. 49)