日付の正規表現

日付の正規表現というと、よく次の式を長年使ってました。

^\d{4}\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$

もしくは、

^\d{4}/(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])$

javascript のmatch(/.../) で使うなら、

^\d{4}\/(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01])$

やっぱり、月日を、01 も、1 両方をOKとしたい。ということで。。

"/" 区切りの場合で、"/" のエスケープが必要なら、、

^\d{4}\/(0{0,1}[1-9]|1[012])\/(0{0,1}[1-9]|[12][0-9]|3[01])$