Для начала можно изменить формат даты и использовать в качестве разделителя, например, дефис (20-12-2018).
Решается следующим образом:
1) в конструктор компонента инжектим
private _activatedRoute: ActivatedRoute
и
private _router: Router
2) подписываемся (предпочтительней в ngOnInit) на ActivatedRoute и обрабатываем значение параметра роута:
this._activatedRoute.paramMap.subscribe((params: ParamMap) => {
let date: string = params.get('date');
if (/*если дата неправильна*/) {
date = ...; // изменим дату на корректную
this._router.navigate(['/date', date]);
}
})
Если потребуется валидировать дату с помощью нативного js конструктора Date, учтите, что валидным будет создание объекта new Date('mm-dd-yyyy'), т.е. new Date('20-12-2018') выдаст Invalid Date, т.к. 20-ого месяца не существует.