นิพจน์ปกติคือรูปแบบที่ช่วยให้บอทตรวจสอบรูปแบบของข้อมูลที่ผู้ใช้ป้อน เช่น เพื่อให้แน่ใจว่าข้อมูลที่ป้อนเป็นหมายเลขโทรศัพท์ ไม่ใช่สิ่งอื่น

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

บล็อกการป้อนหมายเลขโทรศัพท์มีการเชื่อมต่อขาออกสองแบบ: แบบหนึ่งไม่มีทริกเกอร์ใดๆ และอีกแบบมีทริกเกอร์ที่ใช้นิพจน์ปกติเพื่อจับคู่หมายเลขโทรศัพท์
^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$
โฟลว์นี้ใช้การเชื่อมต่อสองแบบเพื่อจัดการการตรวจสอบหมายเลขโทรศัพท์:
-
การเชื่อมต่อหลัก (หมายเลขที่ถูกต้อง)
- ทริกเกอร์: หมายเลขโทรศัพท์ที่จัดรูปแบบอย่างถูกต้อง
- การดำเนินการ: เพิ่มหมายเลขลงในแอปพลิเคชันและดำเนินการต่อ
-
การเชื่อมต่อสำรอง (ข้อมูลที่ไม่ถูกต้อง)
- ลำดับความสำคัญ: ต่ำกว่าการเชื่อมต่อหลัก
- ทริกเกอร์: ข้อมูลใดๆ ที่ไม่ใช่หมายเลขโทรศัพท์ที่ถูกต้อง
- การดำเนินการ: แจ้งให้ผู้ใช้ทราบถึงข้อผิดพลาดและนำทางกลับไปลองอีกครั้ง
วิธีนี้ช่วยให้แน่ใจว่าผู้ใช้จะดำเนินการต่อหลังจากให้ข้อมูลที่ถูกต้องเท่านั้น ในขณะที่ได้รับการตอบกลับทันทีเกี่ยวกับข้อผิดพลาดใดๆ
รายการนิพจน์ปกติที่มีประโยชน์:
-
การป้อนตัวเลขเฉพาะตัวเลขที่ขึ้นต้นด้วย 1:
^[1-9]+[0-9]*$ -
การป้อนตัวเลขเฉพาะตัวเลขที่ขึ้นต้นด้วย 0:
^[0-9]+[0-9]*$ -
หมายเลขบัตรเครดิต:
[0-9]{13,16} -
หมายเลขโทรศัพท์ทั่วไป:
^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$ -
ตัวอักษรและตัวเลข (ละติน):
^[a-zA-Z0-9]+$ -
โดเมน (เช่น abcd.com):
^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$ -
URL (เช่น abcd.com):
(https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]* -
IPv4:
((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?) -
IPv6:
((^|:)([0-9a-fA-F]{0,4})){1,8}$ -
ชื่อผู้ใช้ (จำกัด 2-20 ตัวอักษร ซึ่งสามารถเป็นตัวอักษรและตัวเลข ตัวอักษรตัวแรกต้องเป็นตัวอักษร):
^[a-zA-Z][a-zA-Z0-9-_\.]{1,20}$ -
รหัสผ่าน (ตัวอักษรละตินตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ตัวเลข):
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$ -
รหัสผ่านที่แข็งแกร่ง (ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก ตัวเลข/อักขระพิเศษ ขั้นต่ำ 8 ตัวอักษร):
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$ -
วันที่ในรูปแบบ YYYY-MM-DD:
[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01])
อัปเดต การตรวจสอบวันที่ที่เข้มงวดยิ่งขึ้น:
(19|20)\d\d-((0[1-9]|1[012])-(0[1-9]|[12]\d)|(0[13-9]|1[012])-30|(0[13578]|1[02])-31) -
วันที่ในรูปแบบ DD/MM/YYYY:
(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d -
วันที่ในรูปแบบ DD.MM.YYYY:
(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)\d\d -
จำนวนเต็มและเลขทศนิยม (จุดเป็นตัวคั่นทศนิยม)
\-?\d+(\.\d{0,})? -
UUID:
^[0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12}$ -
ละติจูดหรือลองจิจูด:
-?\d{1,3}\.\d+ -
อัปเดต อีเมล:
^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$ -
อัปเดต URL
~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&?+=\~/-]*)?(?:#[^ '\"&]*)?$~i -
อัปเดต เวลาในรูปแบบ HH:MM:SS:
^([0-1]\d|2[0-3])(:[0-5]\d){2}$ -
อัปเดต ที่อยู่ Mac:
([0-9a-fA-F]{2}([:-]|$)){6}$|([0-9a-fA-F]{4}([.]|$)){3}
มีนิพจน์ปกติจำนวนมากให้เลือกใช้ หากคุณไม่พบนิพจน์ที่ต้องการในรายการนี้ ควรใช้เครื่องมือค้นหา
คุณสามารถทดสอบนิพจน์ปกติได้อย่างสะดวกบนเว็บไซต์เช่น: https://regex101.com/