我有我最初以为是一个正则表达式的错误问题,但我推断,这是多么的材料日期选择是把日期字符串到输入作为一个完整的问题日期对象,而不是因为它是在输入示出,并且从而掀起一个验证消息的日期的字符串版本。材料2日期选择器与日期模式验证冲突的
下面是我如何使用它,然后的两个屏幕截图显示了同一日期验证失败的日期选择器,并通过它,如果日期选取器被删除/注释掉,简单地输入到输入。
<div class="col-xs-12 col-sm-6">
<div class="form-group" [ngClass]="{'td-group-error': (changeForm.get('changeInfoFG.dateSubmitted').touched || changeForm.get('changeInfoFG.dateSubmitted').dirty) && !changeForm.get('changeInfoFG.dateSubmitted').valid }">
<span><input id="dateSubmittedId" class="form-control" type="text" formControlName="dateSubmitted" [mdDatepicker]="sbdate" style="width:90%;display:inline-block">
<md-datepicker-toggle [for]="sbdate"></md-datepicker-toggle>
<md-datepicker #sbdate></md-datepicker></span>
<div class="error-block" *ngIf="(changeForm.get('changeInfoFG.dateSubmitted').touched || changeForm.get('changeInfoFG.dateSubmitted').dirty) && !changeForm.get('changeInfoFG.dateSubmitted').valid"
role="alert" style="color: #ae0101"> <strong>!</strong>
<span *ngIf="changeForm.get('changeInfoFG.dateSubmitted').errors.required">Required</span>
<span *ngIf="changeForm.get('changeInfoFG.dateSubmitted').errors.pattern">Date must be mm/dd/yyyy, date is currently: {{changeForm.get('changeInfoFG.dateSubmitted').value}}</span>
</div>
</div>
</div>
随着的DatePicker
没有的DatePicker
而这是所使用的验证器,执行以m/d日期的一个短日期字符串表示/ yyyy/mm/dd/yyyy格式。
dateSubmitted: [null, [Validators.required, Validators.pattern('^(?:(?:10|12|0?[13578])/(?:3[01]|[12][0-9]|0?[1-9])/(?:1[8-9]\\d{2}|[2-9]\\d{3})|(?:11|0?[469])/(?:30|[12][0-9]|0?[1-9])/(?:1[8-9]\\d{2}|[2-9]\\d{3})|0?2/(?:2[0-8]|1[0-9]|0?[1-9])/(?:1[8-9]\\d{2}|[2-9]\\d{3})|0?2/29/[2468][048]00|0?2/29/[3579][26]00|0?2/29/[1][89][0][48]|0?2/29/[2-9][0-9][0][48]|0?2/29/1[89][2468][048]|0?2/29/[2-9][0-9][2468][048]|0?2/29/1[89][13579][26]|0?2/29/[2-9][0-9][13579][26])$')]],
我希望能够使用的日期选择器来获得确切日期字符串日期选择如图所示的输入的地方,而不是完整的日期对象时,它实际上是在把材料。有人可以帮我指点迷津我会怎么做呢?
有什么办法,我可以使用相同的逻辑和风格,以示对材料的DatePicker验证的验证错误,我在我的例子吗?他们如何显示/默认验证? – David
我建议你做一个自定义的验证。由于角材料的DatePicker在结合“[(ngModel)”提出约会对象,它不符合你的正则表达式。在自定义验证程序中,您可以测试日期的控制值是否为对象,提取年/月,最后使用RegExp验证每个人。自定义验证器链接https://angular.io/guide/form-validation#custom-validators –