我有两个不同的东西密码和pin。我正在寻找RegEx格式都像下面-:
密码——:
- 1大写
- 1小的
特殊字符- 最小8位
时间不能重复任何事情。我已经取得了4分
let reg = "^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])(?=.{8,})"
但我不能达到第五个。
销
1. 6 digit pin
2. Only numbers
3. Can't be use simple pin (111111,222222,...00000 and 123456, 234567 ....654321)
你可以使用这个正则表达式和一个额外的负向前看来禁止任何字符重复3次或更多:
^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*])(?!.*?(.)(?:.*?1){2}).{8,}$
RegEx演示
请注意这个额外的负面展望:
(?!.*?(.)(?:.*?1){2})
如果在输入中发现一个字符重复3次或以上,将导致匹配失败。
完整的正则表达式细节:
^
: Start(?=.*[a-z])
:正向前看,断言我们必须有一个小字母(?=.*[A-Z])
:正向前看断言我们必须有一个大写字母(?=.*[0-9])
:正向前看断言我们必须有一个数字(?=.*[!@#$%^&*])
:正向前看断言必须有一个特殊字符(?!.*?(.)(?:.*?1){2})
:负向前看断言我们不能重复3次或更多相同的字符.{8,}
:匹配8个或更多字符$
;