我正在尝试创建一个RegEx以匹配具有以下条件的字符串:
-
第一个字符必须是一个字母 .
-
至少一个号码 .
-
至少一个大写字母 .
-
至少一个小写字母 .
-
至少一个符号
(can be any of these: $, @, #, *, /, &, !, ¿, ?, ¡, +, -, %, (, ), =)
-
没有重复的字符(例如:22,www,5555)
-
字符串必须是8个字符的确切长度 .
例子:
W23@r#k8
Xa$4=6/w
Pe4*5v?-
M2%e5(7f
Qsd!Y7a
我开发这种模式但还不够:
^([a-zA-Z]){1}([A-Za-z0-9]){7}$
此模式验证1和7点 .
谢谢!
1 回答
你可以用
见regex demo
Details :
^
- 字符串的开头(?!.*(.)\1)
- 不能有相同的连续字符(?=.*[A-Z])
- 字符串右侧某处必须至少有1个大写ASCII字母(?=.*[a-z])
- 字符串右侧某处必须至少有1个小写ASCII字母(?=.*[$@#*\/&!¿?¡+%()=-])
- 字符串中右边某个字符类必须至少有一个字符[a-zA-Z]
- 第一个字符是ASCII字母(?=.*[0-9])
- 字符串中右侧必须至少有一位数字[A-Za-z0-9$@#*\/&!¿?¡+%()=-]{7}
- 来自char类的7个字符,字母,数字,特殊字符$
- 字符串结束 .请注意,如果您允许字符串中的任何字符,请将
[A-Za-z0-9$@#*\/&!¿?¡+%()=-]{7}
替换为.{7}
.