【发布时间】:2019-12-14 21:19:30
【问题描述】:
FormControl() Validators.pattern() 使用此正则表达式验证密码时遇到问题,该密码包含 1 个字符、1 个数字、最少 8 个字符、最多 16 个字符.
通过验证器的测试密码:
asdfqwer //不应该通过验证器
zxcvasdf //不应该通过验证器
asdfqwer2 //没错
未通过验证器的测试密码:
程序 //没错
在服务器端尝试这种模式或使用在线正则表达式测试平台没有问题
// some code
password: new FormControl('',
[
Validators.minLength(8),
Validators.maxLength(16),
Validators.pattern('^$|^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$')
]),
// some code
【问题讨论】:
-
为什么一开始就有
^$?^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,16}$这就够了,你也不需要检查长度
标签: javascript regex angular validation