คำอธิบายของข้อความยืนยันอีเมลที่ใช้กันทั่วไปใน PHP
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-06-06 18:17:18
ฉันเชื่อว่าใครก็ตามที่ศึกษา PHP เป็นอย่างดีควรรู้ข้อความต่อไปนี้สำหรับการยืนยันอีเมล แต่มีน้อยคนที่เข้าใจได้จริงๆ:
<?php
ถ้า (เอเรกี("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[az]{2,3}$",$ อีเมล)) {
echo "อีเมลของคุณผ่านการตรวจสอบเบื้องต้น";
-
-
ในประโยคนี้ สิ่งแรกคือการใช้ฟังก์ชันเอเรกี ซึ่งค่อนข้างเข้าใจง่าย เพียงหาหนังสือแล้วมันจะให้คำอธิบายแก่คุณ:
ไวยากรณ์: int ereg(รูปแบบสตริง, สตริงสตริง, อาร์เรย์ [regs]);
ส่งคืนค่า: จำนวนเต็ม/อาร์เรย์ ฟังก์ชันนี้แยกวิเคราะห์และเปรียบเทียบสตริงตามกฎของรูปแบบ
ค่าที่ส่งคืนโดยผลการเปรียบเทียบจะถูกวางไว้ในพารามิเตอร์อาร์เรย์ regs เนื้อหาของ regs[0] คือสตริงดั้งเดิม regs[1] เป็นสตริงแรกที่สอดคล้องกับกฎ และ regs[2] คือสตริงที่สอง ที่เป็นไปตามกฎเกณฑ์ เป็นต้น หากละเว้นพารามิเตอร์ regs พารามิเตอร์นั้นจะถูกเปรียบเทียบ และค่าที่ส่งคืนจะเป็นจริงหากพบ
สิ่งที่เข้าใจได้ยากคือนิพจน์ทั่วไปก่อนหน้านี้: ^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[ az]{2 ,3}$
ในนิพจน์ทั่วไปนี้ "+" หมายความว่าสตริงก่อนหน้าปรากฏอย่างน้อยหนึ่งรายการติดต่อกัน "^" หมายความว่าสตริงถัดไปต้องปรากฏที่จุดเริ่มต้น และ "$" หมายความว่าสตริงก่อนหน้าต้องปรากฏที่ส่วนท้าย
"." ยังเป็น "." โดยที่ "" เป็นอักขระหลีก "{2,3}" หมายความว่าสตริงก่อนหน้าสามารถปรากฏได้ 2-3 ครั้งติดต่อกัน "()" หมายความว่าเนื้อหาที่มีอยู่จะต้องปรากฏในวัตถุเป้าหมายด้วย "[_.0-9a-z-]" หมายถึงอักขระใดๆ ที่มีอยู่ใน "_", ".", "-", ตัวอักษรในช่วงตั้งแต่ a ถึง z และตัวเลขในช่วงตั้งแต่ 0 ถึง 9;
ด้วยวิธีนี้ นิพจน์ทั่วไปนี้สามารถแปลได้ดังนี้:
"อักขระต่อไปนี้ต้องขึ้นต้นด้วย (^)", "อักขระต้องมีอยู่ใน "_", ".", "-", ตัวอักษรในช่วงตั้งแต่ a ถึง z, ตัวเลขในช่วงตั้งแต่ 0 ถึง 9 ([ _.0-9a-z-])", "อักขระนำหน้าปรากฏอย่างน้อยหนึ่งครั้ง (+)", @, "สตริงประกอบด้วยตัวอักษรที่อยู่ในช่วงตั้งแต่ a ถึง z จาก 0 ถึง 9 ขึ้นต้นด้วย a ตามด้วยอักขระอย่างน้อยหนึ่งตัวที่อยู่ใน "-" ตัวอักษรใดๆ ในช่วงตั้งแต่ a ถึง z หมายเลขใดๆ ในช่วงตั้งแต่ 0 ถึง 9 และสุดท้ายลงท้ายด้วย . (([0-9a -z ][0-9a-z-]+.))", "อักขระก่อนหน้าปรากฏอย่างน้อยหนึ่งครั้ง (+)", "ตัวอักษรในช่วงตั้งแต่ a ถึง z ปรากฏ 2-3 ครั้งและลงท้ายด้วย ([ az] {2,3}$)”
มันซับซ้อนใช่ไหม นั่นเป็นเหตุผลว่าทำไมผู้คนถึงใช้นิพจน์ทั่วไป