Regex 角度反应表单模式验证未按预期工作
我对密码进行了反应式表单验证,模式如下:Regex 角度反应表单模式验证未按预期工作,regex,angular,Regex,Angular,我对密码进行了反应式表单验证,模式如下: new RegExp('^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[#$^+=!*()@%&]).{8,50}$'); 我的目标是验证字符串,以便: 在8到50个字符之间 有一个小写字母 有一个大写字母 他有一个号码 并且有一个符号 出于某种原因,它就像一个符咒,但如果我输入一个以单个数字开头的密码,验证就会失败 我做错了什么? 密码示例: 1dD5a971#--不匹配 11dD5a971#——匹配吗 角度代
new RegExp('^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[#$^+=!*()@%&]).{8,50}$');
我的目标是验证字符串,以便:
- 在8到50个字符之间
- 有一个小写字母
- 有一个大写字母
- 他有一个号码
- 并且有一个符号
static PASSWORD_PATTERN = new RegExp('^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[#$^+=!*()@%&]).{8,50}$');
this.form= fb.group({
user: [...],
password: ['', [Validators.compose([
Validators.required,
Validators.min(8),
Validators.max(50),
Validators.pattern(AddUserComponent.PASSWORD_PATTERN)
])]]
};
提前谢谢你。我不是正则表达式专家,但如果你制作一个多模式而不仅仅是一个复杂的模式可能会更好,我的目标是让它尽可能简单,你可以有一个不同的模式消息库
this.form=fb.group({
密码:[
"",
[
需要验证器,
验证器。最小长度(8),
验证器。最大长度(50),
Validators.pattern(/[A-Z]/),
Validators.pattern(/[a-z]/),
验证程序模式(/[0-9]/),
Validators.pattern(/[!@#$]/),
]
]
});
demo我不是正则表达式专家,但是如果你制作一个多模式而不仅仅是一个复杂的模式,可能会更好,我的目标是让它尽可能简单,你可以有一个不同的模式消息库
this.form=fb.group({
密码:[
"",
[
需要验证器,
验证器。最小长度(8),
验证器。最大长度(50),
Validators.pattern(/[A-Z]/),
Validators.pattern(/[a-z]/),
验证程序模式(/[0-9]/),
Validators.pattern(/[!@#$]/),
]
]
});
我觉得这个模式行得通吗?是的,我会用我使用的代码在一秒钟内更新我的问题。它应该与当前的代码一起工作。第一次搜索中的两个\是故意的吗?@chrnx当然是。当然,它可以写成
静态密码模式=/^(?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[#$^+=!*()@%&]){8,50}$/代码>我认为模式正确吗?是的,我会用我使用的代码在一秒钟内更新我的问题。它应该与当前的代码一起工作。第一次搜索中的两个\是故意的吗?@chrnx当然是。当然,它可以写成静态密码模式=/^(?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[#$^+=!*()@%&]){8,50}$/代码>这里所有的代码> { 1,} s都是多余的,考虑删除。此外,我还可以为用户自定义更多的错误消息。谢谢,伙计。这里所有的代码> { 1,} /Cult> s都是多余的,考虑删除。此外,我还可以为用户自定义更多的错误消息。谢谢你,伙计。