Developer Reference & Snippets

คู่มือ Open Source & โค้ดตัวอย่าง

แนะนำการใช้งานโปรเจกต์ Open Source ของ thutil พร้อมแจกโค้ดอัลกอริทึมแบบ Zero-dependency คัดลอกไปใช้ในโปรเจกต์ของคุณได้ทันที

1. โปรเจกต์ Open Source ในเครือ thutil

GitHub @thutil

คุณสามารถเข้าถึงซอร์สโค้ดและทดลองใช้งาน Web Apps ของเราได้ผ่านลิงก์ด้านล่าง:

finfly

AirDrop Alternative ส่งไฟล์ P2P ข้ามเครื่องผ่าน WebRTC

เปิดเว็บ finfly ↗
node-shorten-link

บริการและเว็บย่อลิงก์แบบง่ายและรวดเร็ว

self-file-convert

เครื่องมือแปลงไฟล์ภาพ (PNG, WebP, JPG)

ดูบน GitHub ↗

2. อัลกอริทึมตรวจสอบเลขบัตรประชาชน (Modulo 11 Checksum)

คัดลอกฟังก์ชัน JavaScript / TypeScript นี้ไปวางในโปรเจกต์ของคุณได้โดยตรง ไม่ต้องติดตั้งแพ็กเกจเพิ่ม (Zero-dependency):

function validateThaiCitizenId(id: string): boolean {
  const cleanId = id.replace(/[^0-9]/g, '');
  if (cleanId.length !== 13) return false;
  if (cleanId.charAt(0) === '0') return false;

  let sum = 0;
  for (let i = 0; i < 12; i++) {
    sum += parseInt(cleanId.charAt(i), 10) * (13 - i);
  }

  const checkDigit = (11 - (sum % 11)) % 10;
  return checkDigit === parseInt(cleanId.charAt(12), 10);
}

3. สร้าง PromptPay Payload (EMVCo Standard)

ฟังก์ชันคำนวณ CRC16-CCITT สำหรับสร้าง Checksum 4 หลักท้ายของ QR Code พร้อมเพย์:

function calculateCRC16(data: string): string {
  let crc = 0xFFFF;
  for (let i = 0; i < data.length; i++) {
    crc ^= data.charCodeAt(i) << 8;
    for (let j = 0; j < 8; j++) {
      if ((crc & 0x8000) !== 0) {
        crc = ((crc << 1) ^ 0x1021) & 0xFFFF;
      } else {
        crc = (crc << 1) & 0xFFFF;
      }
    }
  }
  return crc.toString(16).toUpperCase().padStart(4, '0');
}

4. แปลงตัวเลขเป็นบาทภาษาไทย (BahtText Algorithm)

แปลงตัวเลขทศนิยมเป็นตัวหนังสือบาทไทยตามหลักการออกเสียงที่ถูกต้อง:

// ใช้งานเครื่องมือทดสอบออนไลน์ได้ทันทีที่ thutil.com/#tools
// รองรับตัวเลขหลักล้าน, เอ็ด, ยี่, สตางค์ และคำว่า "ถ้วน" อัตโนมัติ