Thaiadmin

ตรวจสอบหมายเลขบัตรประจำตัวประชาชน ด้วย JavaScript

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

m3rlinez

เห็นบอร์ดว่างๆครับ โพสต์ซะหน่อย  ;D

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

ที่บอกว่าตรวจสอบไม่ได้หมายความว่าตรวจสอบว่าหมายเลขบัตรนี้มีจริงหรือไม่นะครับ แต่หมายถึงตรวจสอบว่าอยู่ในรูปแบบที่ถูกต้องรึเปล่า สำหรับการตรวจสอบว่ามีอยู่จริงหรือไม่อาจตรวจสอบผ่านเว็บเซอร์วิส รายละเอียดที่ http://www.rd.go.th/webservice/new/tin.html

คือในหมายเลขบัตรปปช 13 หลักนี่ หลักสุดท้ายจะเป็นหลักที่เรียกว่า Check Digit เอาไว้ตรวจสอบความถูกต้องของบัตร

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

ประโยชน์ของการมี Check Digit ก็มีหลายอย่าง เช่น มันป้องกันคนใส่หมายเลขบัตรมั่วๆได้ส่วนหนึ่ง (90%) หรือในการอ่านบาร์โค้ดซึ่งอาจเกิดความผิดพลาดได้ (ความผิดพลาดจากเครื่องมืออ่าน) เราก็เอาชุดตัวเลขที่อ่านได้จากเครื่องมาทดสอบดู ว่า Check Digit ในข้อมูลชุดที่อ่านได้ สอดคล้องกับตัวเลขอื่นๆในข้อมูลชุดเดียวกันรึเปล่า

สำหรับวิธีการหา Check Digit ผมขอยกมาจาก http://www.cp.eng.chula.ac.th/webboard/viewtopic.php?t=4602
อ้างถึง
ออออออออ
Guest

 Post Posted: Thu May 18, 2006 11:55 am    Post subject:    
Reply with quote
เลข 13 หลักใช่มั้ยครับ

ให้นำหลักแรก (ทางซ้ายสุด คูณ 13)
บวกกับ (หลักต่อมา คูณ 12)
บวกกับ (หลักต่อมา คูณ 11)
ไปเรื่อยๆจนถึง หลักก่อนสุดท้าย คูณ สอง

นำผลลัพธ์มา mod ด้วย 11 แล้วนำไปหักออกจาก 11 จะได้หลักสุดท้าย

เช่น สมมติให้เลขเป็น 0123456789 121

ให้นำ 0 * 13 + 1 * 12 + 2 * 11 + ..... + 2 * 2 = 307

307 mod 11 ได้ 10
เอา 11 - 10 ได้ 1
ได้หลักสุดท้ายเป็น 1 แสดงว่า เลขประจำตัว ถูกต้อง (แต่ไมได้บอกว่ามีจริง)

แล้วก็เพิ่มเติมนิดหน่อย คือถ้าหลังหักออกจาก 11 แล้วมันกลายเป็นเลขสองหลัก ก็ตัดให้เป็นหลักเดียว (คือหลักสุดท้าย)

แต่วิธีการข้างต้นนี้ หลายคนเอาไปลองแล้วปรากฎว่าออกมาไม่ตรงครับ แต่ของผมเองและคนอีกกลุ่มก็ออกมาตรง ยังไงว่างๆลองตรวจของตัวเองดูนะครับว่าตรงรึเปล่า

เย็นวันนี้ผมว่าง (แต่พรุ่งนี้เปิดเทอมแล้ว) ผมได้เขียนตัวอย่างโปรแกรมสำหรับตรวจหมายเลขบัตรประจำตัวประชาชนด้วย JavaScript ขึ้นมาด้วย โดยเช็คตามวิธีข้างบนนี้ เอามาให้เป็นตัวอย่างสำหรับคนที่อยากศึกษา JavaScript ให้มากขึ้นครับ  O0