การใช้ Regular Expression (RegEx) ในการตรวจสอบค่าในอินพุตหรือค่าจากตัวแปร

 


Regular Expression (RegEx) คืออะไร?

Regular Expression หรือ RegEx คือรูปแบบภาษาหนึ่งที่ใช้ในการจับคู่ข้อความ (text matching) เพื่อการค้นหา แทนที่ หรือ ตรวจสอบ ความถูกต้องของข้อมูล เช่น การตรวจสอบอีเมล เบอร์โทรศัพท์ หรือรหัสผ่าน

RegEx ถูกนำไปใช้ในหลายภาษา เช่น JavaScript, Python, PHP, Java เป็นต้น


โครงสร้างพื้นฐานของ RegEx

  • ^ : เริ่มต้นด้วย
  • $ : จบด้วย
  • . : ตัวอักษรใด ๆ 1 ตัว
  • * : ซ้ำได้ไม่จำกัด
  • + : ซ้ำได้อย่างน้อย 1 ครั้ง
  • ? : มีหรือไม่มีตัวอักษรนี้ก็ได้
  • [] : กลุ่มของตัวอักษร เช่น [a-z]
  • {n} : จำนวนครั้งที่ต้องตรงตาม n
  • \d : ตัวเลข (0-9)
  • \w : ตัวอักษรหรือตัวเลข (a-z, A-Z, 0-9, _)


ตัวอย่างการใช้งาน RegEx ในการตรวจสอบค่าจากอินพุต

1. ตรวจสอบอีเมล

javascript
function validateEmail(email) { const pattern = /^[\w.-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; return pattern.test(email); } // ตัวอย่างใช้งาน console.log(validateEmail("john.doe@gmail.com")); // true console.log(validateEmail("john.doe@.com")); // false

2. ตรวจสอบเบอร์โทรศัพท์ (เช่น เบอร์ไทย 10 หลัก เริ่มด้วย 06, 08, 09)

javascript
function validatePhone(phone) { const pattern = /^(06|08|09)\d{8}$/; return pattern.test(phone); } console.log(validatePhone("0812345678")); // true console.log(validatePhone("021234567")); // false

3. ตรวจสอบรหัสผ่าน (ต้องมีอย่างน้อย 8 ตัวอักษร ประกอบด้วยตัวพิมพ์เล็ก พิมพ์ใหญ่ ตัวเลข และอักขระพิเศษ)

javascript
function validatePassword(password) { const pattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{8,}$/; return pattern.test(password); } console.log(validatePassword("Test@1234")); // true console.log(validatePassword("password")); // false

4. ตรวจสอบค่าที่เป็นตัวเลขเท่านั้น

javascript
function isNumeric(value) { const pattern = /^\d+$/; return pattern.test(value); } console.log(isNumeric("123456")); // true console.log(isNumeric("123abc")); // false

✅ รูปแบบ RegEx สำหรับตรวจสอบอักษรภาษาไทย

อักษรไทยอยู่ในช่วง Unicode: \u0E00-\u0E7F

ตัวอย่าง RegEx:

regex
^[\u0E00-\u0E7F]+$
  • ^ : เริ่มต้นข้อความ
  • [\u0E00-\u0E7F]+ : ต้องเป็นอักษรไทยอย่างน้อย 1 ตัวหรือมากกว่า
  • $ : จบข้อความ


📌 ตัวอย่างโค้ด JavaScript

javascript
function isThaiText(text) { const pattern = /^[\u0E00-\u0E7F]+$/; return pattern.test(text); } // ตัวอย่างการใช้งาน console.log(isThaiText("สวัสดี")); // true console.log(isThaiText("Hello")); // false console.log(isThaiText("123")); // false console.log(isThaiText("สวัสดี123")); // false

✅ หากต้องการให้ มีเว้นวรรคด้วย (เช่น "นาย สมชาย")

ให้เพิ่มเว้นวรรคเข้าไปในกลุ่ม [ ]:

javascript
const pattern = /^[\u0E00-\u0E7F\s]+$/;

\s คือช่องว่าง (space, tab, newline)


✅ หากต้องการ ตรวจเฉพาะว่า “มีอักษรไทยอยู่ในข้อความหรือไม่” (ไม่ต้องทั้งข้อความ)

javascript
function containsThai(text) { const pattern = /[\u0E00-\u0E7F]/; return pattern.test(text); } console.log(containsThai("Hello สวัสดี")); // true console.log(containsThai("Hello World")); // false


ความต้องการRegEx
เป็นอักษรไทยทั้งหมด^[\u0E00-\u0E7F]+$
เป็นอักษรไทย + ช่องว่าง^[\u0E00-\u0E7F\s]+$
มีอักษรไทยอยู่บางส่วนในข้อความ[\u0E00-\u0E7F]

สรุป

การใช้ RegEx เป็นเทคนิคที่ทรงพลังในการตรวจสอบความถูกต้องของข้อมูลในรูปแบบต่าง ๆ โดยสามารถนำไปใช้ในการพัฒนาเว็บไซต์ ฟอร์มกรอกข้อมูล หรือแอปพลิเคชันต่าง ๆ ได้อย่างยืดหยุ่นและปลอดภัย

หากคุณเข้าใจพื้นฐานและฝึกฝนการใช้ RegEx จะสามารถประหยัดเวลาในการตรวจสอบค่าต่าง ๆ ได้อย่างมาก


แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า