获取mat-datepicker值以进行验证

时间:2018-02-20 10:50:05

标签: date datepicker angular-material2 angular-forms angular-validation

我已经实现了一个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)"

任何人都知道我如何获得与我的模式进行比较的正确值?

0 个答案:

没有答案