正则表达式的角度模式验证

Nic*_*las 4 regex typescript angular

我需要做一个密码模式验证器

密码应具有:

  • 1个大写字母
  • 1个小写字母
  • 一个号码
  • 最小长度为8。

我发现此正则表达式模式:

Validators.pattern('/^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d!$%@#£€*?&]')
Run Code Online (Sandbox Code Playgroud)

但是,验证器始终声称我的输入无效

errors:    
   pattern:
      actualValue: "Test1234"
      requiredPattern: "^/^(?=.*[A-Za-z])(?=.*d)[A-Za-zd!$%@#£€*?&]$"
Run Code Online (Sandbox Code Playgroud)

根据https://regex101.com/r/AfAdKp/1,该值应该是有效的。

编辑:澄清一下,Test1234应该工作

rev*_*evo 8

您当前的正则表达式存在多个问题:

  1. 您的正则表达式没有字符类的量词
  2. Validators.pattern 不需要定界符,但您一开始就扔了
  3. 您应该将转义令牌加倍。

您需要的是:

Validators.pattern('^(?=[^A-Z]*[A-Z])(?=[^a-z]*[a-z])(?=\\D*\\d)[A-Za-z\\d!$%@#£€*?&]{8,}$');
Run Code Online (Sandbox Code Playgroud)

在这里观看现场演示