Page 1 of 1

preg_match: check birthday format (dd/mm/yyyy)

Posted: Wed Sep 15, 2010 2:11 pm
by lauthiamkok
Hi,

How do I make the expression which checks the birthday input to match a format like this dd/mm/yyyy? Below is what I came out so far, but it takes this too if I put 99/99/9999!

Code: Select all

if (!preg_match("/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/", $cnt_birthday))
		{
			$error = true;
			echo '<error elementid="cnt_birthday" message="BIRTHDAY - Only this birthday format - dd/mm/yyyy - is accepted."/>';
		}
How can I make sure that its only 01 to 31 for dd and 01 to 12 for mm? but I am sure how to restrict yyyy... I think theoritical 9999 should be acceptable... let me know if you have a better idea!

thanks,
Lau

Re: preg_match: check birthday format (dd/mm/yyyy)

Posted: Wed Sep 15, 2010 3:40 pm
by bradbury
my favorite way to do this is to not give people the option and just do a quick dropdown menu and have it auto insert numbers that are already specified by the database.
If you dont want to do that I would suggest

Code: Select all

$birthday = Whatever the user inputs;
$birthday = explode("/", $birthday);
if(strlen($birthday[0] > 2) {
   echo "Wrong Input";
}
else {
// hopefully you followed the code and can figure out the rest for yourself
}