Регулярные выражения слишком включены.Следующее также будет соответствовать недопустимым датам, таким как «2014-01-33», но не так много (предполагается порядок YYYY-MM-DD):
"^ 20 [0-9] [0-9]- [0-1] [0-2] - [0-3] [0-9] "
или во избежание таких дат, как" 2014-11-33 "(но не как" 2014-02-31 "или" 2014-00-00 "), вы можете быть немного более строгими:
" ^ 20 [0-9] [0-9] - [0-1] [0-2]- \ ([0-2] [0-9] \ | 30 \ | 31 \) "