久々の正規表現
PHPで日付チェック 時刻チェックをするのに久々に正規表現を使った。
相変わらず便利な機能だと思う。
最初に正規表現にあった時には、なんじゃこの暗号みたいなのは・・・・気持ちわりい!
と思ったのだが、今ではなくてはならないものになった。
ねっ! 気持ち悪いでしょ
// 日付が正しいかをチェックする。例 2008/12/2
static function IsYMD($text)
{
$array=null;
if(!preg_match(“/^([0-9]{4})\/([0-9]{1,2})\/([0-9]{1,2})$/”,$text,$array)) <-ここでチェックしている
{
return ”;
}
if(!checkdate($array[2],$array[3],$array[1]))
{
return ”;
}
return str_pad(intval($array[1]), 4, ‘0’, STR_PAD_LEFT) . str_pad(intval($array[2]), 2, ‘0’, STR_PAD_LEFT) . str_pad(intval($array[3]), 2, ‘0’, STR_PAD_LEFT);
}
// 時刻が正しいかをチェックする。例 17:12:13
static function IsHMS($text)
{
if(!preg_match(“/^([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})$/”,$text,$array)) <-ここでチェックしている
{
return “”;
}
if(intval($array[1])<0 || intval($array[1])>23)
{
return ”;
}
if(intval($array[2])<0 || intval($array[2])>59)
{
return ”;
}
if(intval($array[3])<0 || intval($array[3])>59)
{
return ”;
}
return str_pad(intval($array[1]), 2, ‘0’, STR_PAD_LEFT) . str_pad(intval($array[2]), 2, ‘0’, STR_PAD_LEFT) . str_pad(intval($array[3]), 2, ‘0’, STR_PAD_LEFT);
}