regex - 使用正则表达式的 Angular 模式验证

标签 regex angular typescript

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

密码应该是:

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

我发现了这个正则表达式模式:

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

然而,验证器总是声称我的输入无效

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

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

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

最佳答案

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

  1. 你的正则表达式没有字符类的量词
  2. Validators.pattern 不需要定界符,但你在开始时加了一个
  3. 你应该加倍转义标记。

你需要的是:

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

参见 live demo here

关于regex - 使用正则表达式的 Angular 模式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51046044/

相关文章:

php - 正则表达式匹配联系人组

google-maps - 在子组件中使用 SebM 谷歌地图模块显示空白 map

javascript - 关于Rxjs的基本问题

angular - 是否可以在 Angular 2中读取其他应用程序的本地存储?

node.js - 类型错误 : fetch is not a function with @azure/ms-rest-nodeauth

java - 所有文件均不打印

regex - 如何修剪给定长度以上的字符串中的所有单词?

c# - 是否可以将 PHP Regex(使用子例程调用)转换为 C# regex?

angular - Angular2 中的 ChangeDetectionStrategy 是什么以及何时使用 OnPush 与 Default?

javascript - 错误 TS2678 类型 "' 字符串 '"is not comparable to type ' ""' Angular 5