首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角反应窗体验证日期年份四位数

角反应窗体验证日期年份四位数
EN

Stack Overflow用户
提问于 2019-04-11 08:11:45
回答 2查看 1.8K关注 0票数 4

我使用角度反应形式,我想要有效的格式,我的日期优先(在现有的两个验证器之前)。我的有效格式是dd/MM/YY(不是 dd/MM/YY)。我使用引导v4日期选择器。

My form:

代码语言:javascript
复制
this.myForm = this.fb.group({
  'day': ['', [Validators.required, minDateValidator(this.todayMoment.toDate()), businessDayValidator()]]
});

我的勇士:

代码语言:javascript
复制
export function minDateValidator(minDate: Date): ValidatorFn {
  return (control: AbstractControl): {[key: string]: any} | null => {
    const invalid = control.value < minDate.setHours(0, 0, 0);
    return invalid ? {'minDate': {value: control.value}} : null;
  };
}

export function businessDayValidator(): ValidatorFn {
  return (control: AbstractControl): {[key: string]: any} | null => {
    const invalid = !DateUtilsService.isBusinessDay(moment(control.value));
    return invalid ? {'businessDay': {value: control.value}} : null;
  };
}

我尝试添加这个Validators.pattern('(2|1)[0-9]{3}-[0-9]{2}-[2-9]{2}.*')

在线regex exec没有问题,但没有角度(打印此错误):

代码语言:javascript
复制
{ "pattern": { "requiredPattern": "^(2|1)[0-9]{3}-[0-9]{2}-[2-9]{2}.*$", "actualValue": "2019-04-15T10:00:00.000Z" } }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-11 10:07:08

引导数据报警器的问题是“值是日期而不是字符串”。

代码语言:javascript
复制
this.myForm = this.fb.group({
  'day': ['', [Validators.required, formatValidator(), minDateValidator(this.todayMoment.toDate()), businessDayValidator()]]
});

export function formatValidator(): ValidatorFn {
  return (control: AbstractControl): {[key: string]: any} | null => {
    const dateRegEx = new RegExp('^(2|1){1}[0-9]{3}.[0-9]{2}.[0-9]{2}.*$');
    const dateInput = control.value as Date;
    const match = dateInput.toISOString && dateRegEx.test(dateInput.toISOString());
    return  match ? null : {'formatValidator': {value: control.value} };
  };
}
票数 2
EN

Stack Overflow用户

发布于 2019-04-11 09:06:30

将模式作为正则表达式传递,而不是字符串,如: Validators.pattern(/^(2|1)0-9{3}-0-9{2}-2-9{2}.*/)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55627689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档