JavaScript date.toISOString() regex
This only attempts to solve the basic pattern of 2017-06-17T00:00:00.000Z
that you expect from Javascript doing it.
const isoPattern = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/;
One of the most annoying things about JSON is one cannot simply pass a date through and expect it to convert properly. Since most people use JavaScript, this is probably practical.
Here's a demo snippet if you have to pass to mongo and need to convert.
if (isoPattern.test(json.startDate))
json.startDate = new Date(json.startDate);
I argue this is a better approach as you can be assured the date will parse, then you can check desired range, all being pretty straight forward and easy to maintain as regex is great but to a point.