Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 角度反应表单模式验证未按预期工作_Regex_Angular - Fatal编程技术网

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个字符之间
  • 有一个小写字母
  • 有一个大写字母
  • 他有一个号码
  • 并且有一个符号
出于某种原因,它就像一个符咒,但如果我输入一个以单个数字开头的密码,验证就会失败

我做错了什么? 密码示例:

1dD5a971#--不匹配

11dD5a971#——匹配吗

角度代码:

 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都是多余的,考虑删除。此外,我还可以为用户自定义更多的错误消息。谢谢你,伙计。