neadekvat
Цитата |
Но вообще, разве в регэкспах php можно делать вычисления? |
?<!
echo (int) preg_match('#^\d{4}\.(?:0[1-9]|1[0-2])\.(?(?<=02.)([0-2][0-8])|([0-2][0-9]|3[01]))$#', $date);
$year = '\d{4}';
$month = '(?:0[1-9]|1[0-2])';
$day = '(?(?<=02.)([0-2][0-8])|([0-2][0-9]|3[01]))';
echo (int) preg_match("#^$year\.$month\.$day$#", $date);
Цитата |
кстати ума не приложу,к чему это можно применить? |
Цитата |
Щаа Invis1ble выдаст |
function is_leap($year)
{
if ( ! ($year % 4))
if ($year % 100)
return true;
elseif ( ! ($year % 400))
return true;
return false;
}
function valid_date($date)
{
$year = '(\d{4})';
$month = '(0[1-9]|1[0-2])';
$day = '(?(?<=02.)([0-2][0-9])|([0-2][0-9]|3[01]))';
if ( ! preg_match("#^$year\.$month\.$day$#", $date, $out))
return false;
if ($out[2] == '02' && $out[3] == '29')
if (is_leap($out[1]))
return true;
else
return false;
return true;
}
$date = '1234.02.29';
echo (int) valid_date($date);