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

时间:2016-10-20 17:17:38

标签: regex

我尝试创建一个RegEx以匹配具有以下标准的字符串:

  1. 第一个字符必须是字母。

  2. 至少有一个号码。

  3. 至少一个大写字母。

  4. 至少一个小写字母。

  5. 至少一个符号(can be any of these: $, @, #, *, /, &, !, ¿, ?, ¡, +, -, %, (, ), =)

  6. 没有重复的字符(例如:22,www,5555)

  7. 字符串的长度必须为8个字符。

  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 个答案:

答案 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}