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