Results 1 to 2 of 2

Thread: การตรวจสอบรหัสบัตรประชาชน

  1. #1
    Junior Member
    Join Date
    May 2009
    Posts
    11


    Talking

    การตรวจสอบรหัสบัตรประชาชน

    เวลาจะตรวจสอบว่าข้อมูลที่กรอกมาถูกต้องรึเปล่า จะต้องคำนวณ 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(&#39;รหัสประชาชนไม่ถูกต้อง&#39;
    else alert(&#39;รหัสประชาชนถูกต้อง เชิญผ่านได้&#39;}
    </script>

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

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

  2. #2
    Junior Member
    Join Date
    May 2009
    Posts
    11


    มาจาก dopa ใช่ม่ะ เคยเห็นอยู่ คล้ายๆกัน

    มีโปรแกรมด้วย...ขอรับไปทดสอบโค๊ดหน่อย..
    เคยเขียนแต่ vb

Members who have read this thread : 0

Actions : (View-Readers)

There are no names to display.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •