Por el atributo
placeholder
que veo por ahí, deduzco que estás trabajando bajo el estándar HTML5, entonces, ¿por qué no usas el
<input>
de tipo
date
? Te evitarías toda esta validación y obtendrías un resultado visual mucho mejor.
Y si buscas compatibilidad, puedes usar el
datepicker
de jQuery.
Saludos