我尝试创建一个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点。
谢谢!
答案 0 :(得分:1)
您可以使用
^(?!.*(.)\1)(?=.*[A-Z])(?=.*[a-z])(?=.*[$@#*\/&!¿?¡+%()=-])[a-zA-Z](?=.*[0-9])[A-Za-z0-9$@#*\/&!¿?¡+%()=-]{7}$
请参阅regex demo
<强>详情:
^
- 字符串开头(?!.*(.)\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}
。