Numeric Integer Natural ใน CodeIgniter
ถ้าใครได้เรียกใช้ส่วน validate ของ CodeIgniter จะพบว่ามีการ validate ตัวเลข 3 แบบ(ที่ไม่นับแบบย่อยๆ) คือ
numeric
integer
natural
ทีนี้ก็เข้าใจแหล่ะ ว่า natural มันคือ 0 1 2 3 หรือเลขจำนวนเต็มที่ไม่ติดลบนั่นแหล่ะ ก็มันมีตัวอย่างให้ดูนี่
แต่ปัญหาคือ numeric ต่างจาก integer อย่างไร อะไรคือแบบไหน เพราะว่ามันก็ตัวเลข อาจจะเป็นตัวนึงติดลบได้ อีกตัวไม่ได้หรือเปล่า หรือว่า ตัวนึงเป็นทศนิยมได้อีกตัวเป็นทศนิยมไม่ได้หรือเปล่า งง หาข้อมูลสักพักใหญ่ๆ จนได้ idea ว่าต้องเปิดไฟล์ /libraries/Validation.php ขึ้นมาดูเท่านั้นก็ทำให้บางอ้อได้ว่า
Numeric คือเลขที่มีทั้งค่าบวกและลบ โดยที่เป็นทศนิยมก็ได้ ใช้คำสั่ง return (bool)preg_match( '/^[\-+]?[0-9]*\.?[0-9]+$/', $str);
Integer คือจำนวนเต็มที่มีเครื่องหมาย บวกลบนั่นเอง ใช้คำสั่ง return (bool)preg_match( '/^[\-+]?[0-9]+$/', $str);
อันนี้คือส่วน Validate ของ Codeigniter เท่านั้นนะครับ หากใครใช้ภาษา หรือ framework อื่นอาจจะไม่เหมือนกันได้ครับ
tag :
