Javascript 如何在某些条件下使用angular 8中的正则表达式添加密码验证?

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”属性(采用

我想根据以下条件验证用户输入的密码:

密码的最小值应至少为8个字符,最大值应为20个字符,密码中应仅包含一个数字、一个大写字符和一个特殊字符,
/?;:“[]{}\\|!@$%^&*(=)+(.

为此,我使用了以下正则表达式:


密码:
[“”,[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文件中

    <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>
    
    密码:[null, [ 需要验证器, 验证器。最小长度(8), 验证器。最大长度(20), 验证程序.pattern(/[!@$%^&*()_+-=[]{};':“\\\,./?]”[a-zA-Z0-9]/) ]]


运行Demo-

你的问题是什么。但是,它不接受这些特殊字符|[]{},因此它不能正常工作。@KRISHJACKMAN我已经更新了我的答案。所以你可以检查它。