Angular 2 - NgForm 存在模式问题

标签 angular angular2-forms

大家!该模式本身有效。我从 http://regexlib.com/RETester.aspx?regexp_id=409 中提取数据并使用 https://regex101.com/ 进行测试,数据为:02/02/2012 以及许多其他数据。

也许我没有正确使用它?

<form class="searchBlock" [ngFormModel]="formSearch">
   <input type="text" ngControl="frmDateFrom">
</form>
<span>{{formSearch.valid | json}}</span>


import {FORM_DIRECTIVES, FormBuilder, Control, ControlGroup, Validators} from 'angular2/common';
export class MyComponent {
  formSearch: ControlGroup;
  frmDateFrom: Control;
  constructor(private builder: FormBuilder) {
        this.frmDateFrom = new Control('', Validators.compose([Validators.required, Validators.pattern("^(((0[1-9]|[12]\d|3[01])\/(0[13578]|1[02])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|[12]\d|30)\/(0[13456789]|1[012])\/((1[6-9]|[2-9]\d)\d{2}))|((0[1-9]|1\d|2[0-8])\/02\/((1[6-9]|[2-9]\d)\d{2}))|(29\/02\/((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))))$")]));
        this.formSearch = builder.group({
        frmDateFrom: this.frmDateFrom
    });
  }
}

无论值是什么,formSearch.valid 总是会显示 false。可能出了什么问题?

最佳答案

如果您使用像 "^[a-z]$" 这样的简单正则表达式,它工作正常,因此我认为它必须是导致问题的正则表达式。

Plunker example

我很确定问题是由需要转义的反斜杠引起的。只需将任何 \ 更改为 \\

关于Angular 2 - NgForm 存在模式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37134242/

相关文章:

javascript - 使用方括号表示法访问具有 "n"级深度对象的嵌套对象

angular - 在动态实例化的 Angular2 服务中处理可观察对象

javascript - 如果表单项为空,但用户提交表单,则在 Angular2 表单中显示错误

Angular 2 - 表单 - 通过 NgForm 对象将 NgForm .submitted 设置为 true

checkbox - 具有必需属性的 angular2 复选框组

javascript - Angular 2.1.0 动态创建子组件

angular - 格式化输入的电话号码成 Angular

angular - Angular2 表单输入中的 #name 和 [(ngModel)] ="name"有什么区别?

Angular 4 无法读取未定义的属性 'id'

Angular 2 :Checkbox with *ngFor in a table