Your Issue: The issue in your code is in the handleChange function. When you try to delete the '/' the function gets called (because its bound to onChange) and adds a new '/' again.

Date inputs in general: Date-inputs can be very tricky as the formatting differs from country to country. Not only the seperator but also the order of day, month and year is different.

As I don't know what your Application is doing in the end I can't really give a straight answer here. If your Page/Application will be used not only in the US but around the world I would very much recommend to use one of the many plugins out there to take care of your formatting issue.

For Example: https://github.com/RobinHerbots/Inputmask Demo here: http://robinherbots.github.io/Inputmask/

Hope this helps. Good luck and don't get to frustrated over date inputs (I've been there ;))