การตรวจสอบสตริงด้วย regular expression ใน PHP
ความสามารถของ regular expressions ไม่ได้จำกัดอยู่แค่การค้นหาและแทนที่เท่านั้น ยังมีฟังก์ชัน preg_match
ซึ่งใช้ตรวจสอบว่ามีข้อความในสตริงที่ตรงกับรูปแบบ regex หรือไม่ โดยพารามิเตอร์แรกของฟังก์ชันรับ
regular expression และพารามิเตอร์ที่สองรับสตริงสำหรับ
การค้นหา
ทั้งนี้ หากมีข้อความที่ตรงหลายตำแหน่ง
ฟังก์ชันจะพบเพียงตำแหน่งแรกแล้วหยุดทำงาน
ดังนั้นฟังก์ชันจะส่งคืนค่า 1
หรือ 0 และใช้เพื่อตอบคำถาม
'มีสิ่งที่ค้นหาในสตริงหรือไม่'
ส่งคืนหนึ่ง หมายความว่ามี (แต่มีกี่ครั้ง
- ไม่ทราบ) ส่งคืนศูนย์ หมายความว่าไม่มี
ลองดูตัวอย่าง ตรวจสอบว่า
ในสตริงมีข้อความย่อยที่ประกอบด้วย
ตัวอักษร 'a' ซ้ำหนึ่งครั้งหรือมากกว่าหรือไม่:
<?php
echo preg_match('#a+#', 'eee aaa bbb'); // จะแสดงผล 1
?>
และตอนนี้ในสตริงของเราไม่มีสิ่งที่ค้นหา ฟังก์ชัน
จะแสดงผล 0:
<?php
echo preg_match('#a+#', 'eee bbb'); // จะแสดงผล 0
?>
ตรวจสอบว่ามีตัวเลข 3 ตัว
เรียงติดกันในสตริงหรือไม่
ตรวจสอบว่าสตริงที่ส่งเข้ามา
ขึ้นต้นด้วย http หรือไม่
ตรวจสอบว่าสตริงที่ส่งเข้ามา
ขึ้นต้นด้วย http หรือ https หรือไม่
ตรวจสอบว่าสตริงที่ส่งเข้ามา
ลงท้ายด้วยนามสกุล txt, html หรือ php หรือไม่
ตรวจสอบว่าสตริงที่ส่งเข้ามา
ลงท้ายด้วยนามสกุล jpg หรือ jpeg หรือไม่