ขอถามเกี่ยวกับการเขียน patturn ของ regular
ขอถามเกี่ยวกับการเขียน patturn ของ regular
ผมเพิ่งหัดเรียน PHP อ่ะครับแล้วเพิ่งอ่านมาถึงบท regular expression แต่ยังติดตรงการเขียนเช็คอีเมลล์ครับ
code
ผมเพิ่งหัดเรียน PHP อ่ะครับแล้วเพิ่งอ่านมาถึงบท regular expression แต่ยังติดตรงการเขียนเช็คอีเมลล์ครับ
code
function regular_match($pat, $text) {
switch (ereg($pat, $text)) {
case true:
echo "ค่า $text Match กับ $pat";
break;
case false:
echo "ไม่ Match กัน";
break;
}
}
$pat2 = "^[a-zA-Z][a-zA-Z0-9\.\_\-]+@[a-zA-Z0-9][a-zA-Z0-9\-]+[\.][a-zA-Z]+$";
$text2 = "A2sA_.-@Hot-Mail.com";
regular_match($pat2, $text2); ปัญหา ปัญหาอยู่ตรงที่ $text2 = "A2sA_.-@Hot-Mail.com"; คือถ้าผมเติมเป็น .co.th หรือ .mi.th มันจะบอกว่าไม่ Match อ่ะครับ ขอบคุณครับ
ถ้าแนะนำเทคนิคสักหน่อย ผมจะขอบคุณมากครับ
if (!eregi("^.+@.+\..+$", $register[email]))
พอมีวิธีแก้ไหมครับ
คือผมจะแก้ตรงนี้ประมาณว่า
[\.][a-zA-Z] ให้ตรวจสอบว่าต้องเริ่มด้วย . เท่านั้น แล้วตามด้วย a-zA-Z อย่างน้อยสองตัว แล้วจะตามด้วยจุดอีกก็ได้ แต่ต้องตามด้วย a-zA-Z สองตัวอีกเหมือนเดิม จะเขียนยังไงขอรับ
^[a-zA-Z][a-zA-Z0-9\.\_\-]+@[a-zA-Z\.-_]+$