【发布时间】:2018-08-08 08:06:00
【问题描述】:
我正在尝试使用以下正则表达式验证密码:^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.{8,}).
请注意,没有终止 $ 字符,因为这会阻止有效密码被接受。 (我不确定为什么输入字段不会终止字符串)。
但是,Angular 的 Validators.pattern 添加了字符串 char 的结尾。因此我的有效密码失败了。
如何防止模式验证器添加$?
我想我可以推出自己的密码验证器,但肯定有更好的解决方案......?
编辑: 应该成功的密码:
- 测试1234
- tEst1234
- testT1234
- 1234测试
- 1234testT
- t#St1234
应该失败的密码:
- TEST1234
- test1234
- tEst123
- 测试123
- 测试测试
- 12345678
验证器声明:
this.password = new FormControl('', [Validators.required, Validators.pattern('^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.{8,})')]);
this.userForm.addControl('Password', this.password);
【问题讨论】:
-
请给我们一两个示例,说明您尝试了哪些密码,以及您如何声明验证器。
标签: regex angular angular-reactive-forms