首页 文章

反应表单模式验证和表单数组验证?

提问于
浏览
0

对于反应式表单验证,我观察了许多教程和plunker链接,但我没有得到任何解决我的问题的网站

问题1:formgroup模式是 [aA-zZ0-9'-]$/)] (允许否,字符, - ,',空格特殊字符)

export class AppComponent implements OnInit {

  private myForm: FormGroup;

  constructor(private fb: FormBuilder) {
  }

  ngOnInit() {
        this.myForm = this.fb.group({
          'name': ['', [Validators.required,
                    Validators.minLength(3),
                    Validators.maxLength(10),
                    Validators.pattern(/[aA-zZ0-9'-]$/)]],

          'phoneNumbers': new FormArray([new FormControl('')])
        });
      }
}

如上所述,请检查此plunker链接

https://plnkr.co/edit/km7nGR8DjyE4l6tH5JEC?p=preview

在这里,如果你观察到名称字段,它在某些情况下按照正则表达式条件工作

**case1-> aa -- not valid(minimum 3 characters),
case2-> aaa@ --not valid(special chararacter)
case3-> aaa@b -- valid(not giving any message)**

在上面的sceanarios case1,2,如果你观察 case3 输入,即使它's not satisfiying regix rule it'没有抛出任何消息我也不错,我不确定我的regix是对的,我的要求是 (min-3, max-10, allow no, characters, -,', space special charactes)

我正在尝试这么多类型,但每个地方我都遇到同样的问题

问题2:如何为表单数组应用自定义验证器

请给我最好的方法,以满足所有一般用例

提前致谢

Soumya

1 回答

  • 0

    对于案例三,模式是 /^[a-zA-Z0-9-']*$/ .

    根据您的要求(min-3,max-10,允许否,字符, - ,', space special charactes) = use this pattern if you don' t需要@或$只需删除 /^[a-zA-Z0-9-' !@#$%^&]*$/

相关问题