ReSuMeYaDev

เครื่องมือนักพัฒนา

Regex Tester — Highlight + Capture Groups

ทดสอบ Regular Expression กับข้อความตัวอย่างแบบ real-time ไฮไลท์ทุกตำแหน่งที่ตรง รองรับ flags g/i/m/s และมี preset สำหรับอีเมล เบอร์โทรไทย เลขบัตรประชาชน

  • ใช้งานฟรี
  • JavaScript RegExp
  • Highlight real-time
  • รองรับมือถือ

คำจำกัดความ

Regular Expression คืออะไร?

Regular Expression (Regex) คือรูปแบบ (pattern) ที่ใช้ค้นหาและจับคู่ข้อความ เป็นเครื่องมือสำคัญสำหรับนักพัฒนาในการตรวจสอบ ค้นหา และแทนที่ข้อความ

Regex ถูกใช้ในเกือบทุกภาษาโปรแกรม เช่น JavaScript, Python, Java, PHP สำหรับ validation, parsing, และ text processing

Flags

ตัวเลือก Regex Flags

Regex flags เป็นตัวเลือกที่ควบคุมพฤติกรรมของการค้นหา สามารถใช้ร่วมกันได้หลาย flag พร้อมกัน

  • g (global) — ค้นหาทุกตำแหน่ง ไม่หยุดที่ตัวแรก
  • i (case-insensitive) — ไม่สนตัวพิมพ์เล็ก-ใหญ่
  • m (multiline) — ให้ ^ และ $ ทำงานกับแต่ละบรรทัด
  • s (dotAll) — ให้ . จับคู่กับ newline ด้วย

Cheatsheet

สูตรลัด Regex

ตารางสรุป pattern ที่ใช้บ่อยใน Regular Expression พร้อมความหมาย

  • \d — ตัวเลข (0-9)
  • \w — ตัวอักษร ตัวเลข หรือ underscore
  • \s — ช่องว่าง (space, tab, newline)
  • . — ตัวอักษรใดก็ได้ (ยกเว้น newline)
  • ^ — จุดเริ่มต้นบรรทัด
  • $ — จุดสิ้นสุดบรรทัด
  • * — ซ้ำ 0 ครั้งขึ้นไป
  • + — ซ้ำ 1 ครั้งขึ้นไป
  • ? — ซ้ำ 0 หรือ 1 ครั้ง
  • {'{'} n,m {'}'} — ซ้ำ n ถึง m ครั้ง

เคล็ดลับ

เคล็ดลับการใช้ Regex

  • เริ่มจาก pattern ง่ายๆ แล้วค่อยเพิ่มความซับซ้อน
  • ใช้ flag g เสมอถ้าต้องการค้นหาทุกตำแหน่ง
  • ใช้ \b เพื่อจับคู่เฉพาะคำเต็มคำ ป้องกันการจับคู่บางส่วนของคำ
  • หลีกเลี่ยง nested quantifiers เช่น (a+)+ เพราะอาจทำให้ทำงานช้ามาก
  • ใช้ capture group () เพื่อดึงข้อมูลบางส่วนออกมาจาก match

กรณีใช้งาน

กรณีใช้งานจริง

  • Validate อีเมลและเบอร์โทรในฟอร์มสมัครสมาชิกก่อนส่งข้อมูลไปยัง backend
  • ดึงตัวเลขราคาออกจากข้อความ เช่น แยกจำนวนเงินจาก invoice หรือใบเสร็จ
  • ค้นหาและแทนที่ URL ทั้งหมดในบทความ เพื่อเปลี่ยน HTTP เป็น HTTPS พร้อมกัน
  • Parse log file เพื่อดึง timestamp, error code และ message ออกมาวิเคราะห์
  • ตรวจสอบรูปแบบเลขบัตรประชาชน 13 หลักว่าถูกต้องตาม pattern ก่อนบันทึกลงฐานข้อมูล

หลีกเลี่ยง

ข้อผิดพลาดที่พบบ่อย

  • ลืม escape อักขระพิเศษ เช่น . * + ? ทำให้จับคู่ผิด ต้องใส่ \ นำหน้าเมื่อต้องการตัวอักษรจริง
  • ใช้ .* แบบ greedy โดยไม่จำเป็น ทำให้ match กินข้อมูลมากเกินไป ควรใช้ .*? แทน
  • เขียน regex ยาวเกินไปในบรรทัดเดียวโดยไม่ใช้ named group ทำให้อ่านและ maintain ยาก
  • ไม่ทดสอบกับ edge case เช่น ข้อความว่าง อักขระพิเศษ หรือ Unicode ภาษาไทย ทำให้ regex พังในงานจริง

เปรียบเทียบ

เปรียบเทียบกับเครื่องมืออื่น

Regex Tester ของเราใช้งานง่ายผ่านเบราว์เซอร์ พร้อม pattern สำเร็จรูปสำหรับเบอร์โทรไทยและเลขบัตรประชาชน ต่างจาก Regex101 ที่เน้นรายละเอียดทางเทคนิคแต่ไม่มี preset ภาษาไทย

เมื่อเทียบกับการทดสอบ regex ใน IDE หรือ terminal ที่ต้องเขียนโค้ดทดสอบเอง เครื่องมือนี้แสดง match แบบ real-time พร้อม highlight ทำให้เห็นผลทันทีโดยไม่ต้อง compile หรือ run script

FAQ

คำถามที่พบบ่อย

01 Regex Tester นี้ใช้ engine อะไร?

ใช้ JavaScript RegExp engine ซึ่งเป็น engine เดียวกับที่ใช้ในเว็บเบราว์เซอร์ทุกตัว เหมาะสำหรับทดสอบ regex ที่จะใช้ใน JavaScript, TypeScript และ Node.js

02 สามารถใช้ regex จากเครื่องมือนี้ในภาษาอื่นได้ไหม?

ได้ส่วนใหญ่ เพราะ regex syntax คล้ายกันในหลายภาษา แต่บางฟีเจอร์ เช่น lookbehind อาจมีความแตกต่างกัน ควรทดสอบในภาษาที่จะใช้จริงด้วย

03 ทำไมต้องใช้ flag g?

Flag g (global) ทำให้ regex ค้นหาทุกตำแหน่งที่ตรงกัน ถ้าไม่ใส่จะค้นหาแค่ตำแหน่งแรกที่ตรงกัน

04 Regex ที่ซับซ้อนจะทำให้เบราว์เซอร์ค้างไหม?

Regex ที่มี catastrophic backtracking อาจทำให้เบราว์เซอร์ช้าได้ หลีกเลี่ยงการใช้ nested quantifiers เช่น (a+)+ กับข้อความยาวๆ

05 ข้อมูลถูกส่งไปเซิร์ฟเวอร์ไหม?

ไม่ ทุกอย่างประมวลผลใน browser ของคุณ ไม่มีข้อมูลถูกส่งออกไป

06 Lookahead กับ Lookbehind คืออะไร?

Lookahead (?=...) ตรวจสอบว่าด้านหลังมี pattern ที่กำหนดโดยไม่รวมใน match ส่วน Lookbehind (?<=...) ตรวจสอบด้านหน้า ใช้สำหรับ conditional matching ที่ซับซ้อน

07 Named capture group ใช้อย่างไร?

ใช้ (?<name>...) เพื่อตั้งชื่อ group แทนการอ้างอิงด้วยหมายเลข เช่น (?<year>\d{4})-(?<month>\d{2}) ทำให้โค้ดอ่านง่ายและ maintain ง่ายขึ้น

08 Regex ภาษาไทยต้องระวังอะไรบ้าง?

ภาษาไทยไม่มีช่องว่างระหว่างคำ \b จึงทำงานไม่ดีกับคำไทย ควรใช้ Unicode range [\u0E00-\u0E7F] สำหรับจับคู่อักขระไทยโดยเฉพาะ

อ้างอิง

  1. MDN Web Docs — Regular Expressions
  2. JavaScript.info — Regular Expressions
  3. Regex101.com — Regular Expression Reference

เครื่องมือนี้ใช้ JavaScript RegExp engine ผลลัพธ์อาจแตกต่างจาก regex engine ในภาษาอื่น ควรทดสอบในภาษาที่จะใช้งานจริงด้วย

นักพัฒนา

เครื่องมือคำนวณฟรีอื่น ๆ ที่คุณอาจสนใจ

ดูทั้งหมดในหมวดนี้

ต้องการเครื่องมือคำนวณสำหรับธุรกิจของคุณ?

ReSuMeYaDev รับพัฒนาเว็บไซต์ เครื่องมือคำนวณ และระบบภายในตามความต้องการ — Laravel, Vue, Nuxt, Go, Rust