PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。
正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。
Q&A
解決済
2回答
8825閲覧
総合スコア14
0グッド
0クリップ
投稿2015/01/23 02:19
0
phpでpreg_matchを使って年月日をチェックしたいです。 2014-01-01の形をOKとして正規表現を用いてやりたいのですが正規表現がどうもわかりません。
if(preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/',$kaisibi)) 上記のものが条件文です。ご指摘よろしくお願いします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答2件
ベストアンサー
上記の正規表現でXXXX-XX-XXを取得してcheckdate関数で年月日の整合性をチェックするというのは、いかがでしょうか。
if(preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/',$kaisibi,$matches)) { if (checkdate ($matches[3], $matches[2], $matches[1])) { echo "Match!\n"; echo $matches[1]."年".$matches[2]."月".$matches[3]."日\n"; } else { echo "Bad time!\n"; } } else { echo "Bad Format!\n"; }
投稿2015/01/23 03:29
総合スコア64
回答へのコメント
2015/01/23 04:36
/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/ 1月32日も通ってしまいますが簡易チェックとしてなら正しいと思います。
2015-1-1の形式にも対応するのでしたら以下 /^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/ 同じく1月32日も通る。
日付として正しいかどうかは explodeで分割してcheckdateでチェックするか 正規表現でグループ化を使う必要があると思います。 → http://www.tryphp.net/2012/03/14/phpsample-preg-date/
投稿2015/01/23 03:17
総合スコア559
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
preg_matchでの年月日チェック
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/01/23 04:36