首页 文章

添加规则至少模式大写字母,小写字母,数字,符号,没有重复的字符和8个字符的确切长度

提问于
浏览
1

我正在尝试创建一个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 回答

  • 1

    你可以用

    ^(?!.*(.)\1)(?=.*[A-Z])(?=.*[a-z])(?=.*[$@#*\/&!¿?¡+%()=-])[a-zA-Z](?=.*[0-9])[A-Za-z0-9$@#*\/&!¿?¡+%()=-]{7}$
    

    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} .

相关问题