Regex สำหรับผู้เริ่มต้น: 10 Pattern ที่นักพัฒนาทุกคนต้องรู้
เรียนรู้นิพจน์ทั่วไปตั้งแต่เริ่มต้น เรียนรู้รูปแบบ Regex ที่สำคัญสำหรับการตรวจสอบ Email, เบอร์โทรศัพท์, URL, รหัสผ่าน และงานจับคู่ข้อความทั่วไปพร้อมตัวอย่างจริง

Table of Contents
Regex สำหรับผู้เริ่มต้น: 10 Pattern ที่นักพัฒนาทุกคนต้องรู้
นิพจน์ทั่วไป (regex หรือ regexp) เป็นหนึ่งในเครื่องมือที่ทรงพลังที่สุดในชุดเครื่องมือของนักพัฒนา แต่มักหลีกเลี่ยงเพราะดูน่ากลัว คู่มือนี้จะช่วยให้คุณเข้าใจ regex และสอนคุณ 10 รูปแบบที่สำคัญที่คุณจะใช้ตลอดเวลา
นิพจน์ทั่วไป (Regex) คืออะไร
นิพจน์ทั่วไปคือลำดับของอักขระที่กำหนดรูปแบบการค้นหา ใช้เพื่อ:
- ตรวจสอบความถูกต้อง ข้อมูล (รูปแบบอีเมล เบอร์โทรศัพท์ URL)
- ค้นหา ข้อความสำหรับรูปแบบ
- สกัด ข้อมูลเฉพาะจากสตริง
- แทนที่ ข้อความตามรูปแบบ
- แยกวิเคราะห์ ข้อมูลที่มีโครงสร้าง
ทำไมต้องเรียนรู้ Regex
สถานการณ์ในโลกแห่งความเป็นจริง
สถานการณ์ 1: ตรวจสอบความถูกต้องของแบบฟอร์ม ตรวจสอบรูปแบบอีเมลก่อนส่งไปยังเซิร์ฟเวอร์
สถานการณ์ 2: การสกัดข้อมูล สกัดหมายเลขโทรศัพท์จากข้อมูลติดต่อ
สถานการณ์ 3: การแทนที่ข้อความ แปลงลิงก์ Markdown เป็น HTML
10 Regex Pattern ที่จำเป็น
1. การตรวจสอบความถูกต้อง Email
^[a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
ตรงกับ:
ไม่ตรงกับ:
- ❌ john@ (ขาดโดเมน)
- ❌ @example.com (ขาดส่วนท้องถิ่น)
- ❌ john.example.com (ขาด @)
2. เบอร์โทรศัพท์ (รูปแบบสหรัฐ)
^(\+1|1)?[-.\s]?\(?[0-9]{3}\)?[-.\s]?[0-9]{3}[-.\s]?[0-9]{4}$
ตรงกับ:
- ✅ 555-123-4567
- ✅ (555) 123-4567
- ✅ +1 555 123 4567
3. การตรวจสอบความถูกต้อง URL
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&/=]*)$
ตรงกับ:
4. รหัสผ่านที่แข็งแรง
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$
ข้อกำหนด:
- อย่างน้อย 8 อักขระ
- ตัวอักษรตัวพิมพ์เล็ก 1 ตัว
- ตัวอักษรตัวพิมพ์ใหญ่ 1 ตัว
- ตัวเลข 1 ตัว
- อักขระพิเศษ 1 ตัว
5. รหัส HEX สีหัก
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
ตรงกับ:
- ✅ #ffffff
- ✅ #000
- ✅ #FF5733
6. ที่อยู่ IPv4
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
ตรงกับ:
- ✅ 192.168.1.1
- ✅ 10.0.0.1
- ✅ 255.255.255.255
7. วันที่ (YYYY-MM-DD)
^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$
ตรงกับ:
- ✅ 2025-11-15
- ✅ 2025-01-01
- ❌ 2025-13-01 (เดือนไม่ถูกต้อง)
8. เวลา (HH:MM:SS)
^([01]\d|2[0-3]):([0-5]\d):([0-5]\d)$
ตรงกับ:
- ✅ 23:59:59
- ✅ 00:00:00
- ✅ 12:34:56
9. ชื่อผู้ใช้ (อักษรหลัก + ขีดล่าง, 3-16 อักษร)
^[a-zA-Z0-9_]{3,16}$
ตรงกับ:
- ✅ john_doe
- ✅ user123
- ❌ ab (สั้นเกินไป)
10. Slug (รูปแบบที่เหมาะสมสำหรับ URL)
^[a-z0-9]+(?:-[a-z0-9]+)*$
ตรงกับ:
- ✅ my-awesome-post
- ✅ blog-post-123
- ❌ my_awesome_post (ไม่อนุญาตให้ใช้ขีดล่าง)
สาธิต
ลองใช้เดี๋ยวนี้: เครื่องมือ Regex Tester
อัปเดต: พฤศจิกายน 2025 | เวลาอ่าน: 12 นาที