我已经实现了一个mat-datepicker,我想在提交之前验证它。
我按如下方式自定义了NativeDateAdapter:
export class MyDateAdapter extends NativeDateAdapter {
format( date: Date, displayFormat: Object ): string {
if( displayFormat === 'input' ) {
let options = {month: '2-digit', day: '2-digit', year: 'numeric'};
date = date.toLocaleDateString( 'en-US', options );
return date;
} else {
return date.toDateString();
}
}
}
在日期选择器中选择日期时,输出如下:
MM / DD / YYYY
到目前为止,一切都按预期工作......
但是,我想让人们选择是否要使用日期选择器或手动输入(或更正)日期,因此我需要验证日期。
我想使用以下模式验证器:
date: new FormControl( this.newTrade.DateTime, [Validators.maxLength( 10 ), Validators.pattern( '(0?[1-9]|1[012])\/(0?[1-9]|[12][0-9]|3[01])\/((19|20)\\d\\d)' ), this.isDate] );
isDate( control: FormControl ) {
console.log(control);
}
isDate方法仅用于调试目的。
我无法验证输入值,例如" 01/02/208" (手动输入或使用日期选择器键入),因为控制值(control.value)具有日期对象值,如" Tue Jan 02 2018 00:00:00 GMT + 0100(CET)"
任何人都知道我如何获得与我的模式进行比较的正确值?