日付がYYYY-MM-DD形式であるかどうかを確認するPHP正規表現 質問する

日付がYYYY-MM-DD形式であるかどうかを確認するPHP正規表現 質問する

エンド ユーザーが入力した日付が YYYY-MM-DD 形式であるかどうかを確認しようとしています。正規表現は得意ではないので、設定した preg_match() で false の戻り値が返され続けます。

したがって、以下に詳述するように、正規表現を間違えてしまったと推測します。

$date="2012-09-12";

if (preg_match("^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$",$date))
    {
        return true;
    }else{
        return false;
    }

何かご意見は?

ベストアンサー1

これを試して。

$date="2012-09-12";

if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/",$date)) {
    return true;
} else {
    return false;
}

おすすめ記事