所有人!模式本身是有效的。我从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。会出什么问题呢?
发布于 2016-05-10 17:26:11
如果你使用像"^[a-z]$"这样的简单正则表达式,它工作得很好,因此我认为一定是正则表达式导致了问题。
我很确定这个问题是由需要转义的反斜杠引起的。只需将任何\更改为\\
https://stackoverflow.com/questions/37134242
复制相似问题