Javascript 如何在某些条件下使用angular 8中的正则表达式添加密码验证?
我想根据以下条件验证用户输入的密码: 密码的最小值应至少为8个字符,最大值应为20个字符,密码中应仅包含一个数字、一个大写字符和一个特殊字符,Javascript 如何在某些条件下使用angular 8中的正则表达式添加密码验证?,javascript,html,css,angular,angular8,Javascript,Html,Css,Angular,Angular8,我想根据以下条件验证用户输入的密码: 密码的最小值应至少为8个字符,最大值应为20个字符,密码中应仅包含一个数字、一个大写字符和一个特殊字符,/?;:“[]{}\\|!@$%^&*(=)+(. 为此,我使用了以下正则表达式: 密码:[“”,[Validators.pattern(“(?=[a-z])(?=[a-z])(?=[0-9])(?=[$$!%?^&+=,.-])[a-Za-z\d$$$!%。-]{8,}]`这称为模式验证。您可以查看此链接以查看角度示例。当您将“pattern”属性(采用
/?;:“[]{}\\|!@$%^&*(=)+(.
为此,我使用了以下正则表达式:
密码:
[“”,[Validators.pattern(“(?=[a-z])(?=[a-z])(?=[0-9])(?=[$$!%?^&+=,.-])[a-Za-z\d$$$!%。-]{8,}]`这称为模式验证。您可以查看此链接以查看角度示例。当您将“pattern”属性(采用regEx)添加到元素时,它将作为验证程序
<input name="firstName" ngModel pattern="[a-zA-Z ]*">
您可以使用以下模式:
/^(?=.*[0-9])(?=.*[a-z][A-Z])(?=.*[//,.?;<>:!@#$%^&*(-=_+)|{}\[\]])([a-zA-Z0-9//,.?;<>\':\"!@#$%^&*(-=_+)|{}\[\]]{8,20})$/
我认为这会有所帮助。您可以通过以下两个步骤添加您的模式:
- 在HTML文件中
<div *ngIf="f.Password.errors.required"> This field is mandatory</div> <div *ngIf="f.Password.errors.minlength"> Must be at least 8 digits</div> <div *ngIf="f.Password.errors.maxlength"> Must be Max 20 digits</div> <div *ngIf="f.Password.errors.pattern"> Must contain at least 1 Special Character!</div>
此字段是必填字段 必须至少为8位数字 最大值必须为20位 必须至少包含一个特殊字符!
- 在ts文件中
密码:[null, [ 需要验证器, 验证器。最小长度(8), 验证器。最大长度(20), 验证程序.pattern(/[!@$%^&*()_+-=[]{};':“\\\,./?]”[a-zA-Z0-9]/) ]]<div *ngIf="f.Password.errors.required"> This field is mandatory</div> <div *ngIf="f.Password.errors.minlength"> Must be at least 8 digits</div> <div *ngIf="f.Password.errors.maxlength"> Must be Max 20 digits</div> <div *ngIf="f.Password.errors.pattern"> Must contain at least 1 Special Character!</div>
运行Demo-你的问题是什么。但是,它不接受这些特殊字符|[]{},因此它不能正常工作。@KRISHJACKMAN我已经更新了我的答案。所以你可以检查它。