密码正则表达式验证

本文关键字:验证 正则表达式 密码 | 更新日期: 2023-09-27 18:35:40

这些是要求,但我想这对我的正则表达式技能来说太复杂了......

介于 6 到 10 个字母数字字符之间
.允许 A-Z,a-z,0-9,@,$,_
.必须以字母
开头.必须至少包含一个数字
.不能包含两个连续的相同字符
.不能包含两个连续的相同数字

我知道正则表达式的基本知识,例如[A-Za-Z] = 仅字符等...但是当涉及到连续的角色和东西时...

密码正则表达式验证

试试这个

((?=.*'d)(?=.*[a-z])(?=.*[A-Z])(?=.*['W]).{6,20})

上述正则表达式说明:

(           # Start of group
  (?=.*'d)      #   must contains one digit from 0-9
  (?=.*[a-z])       #   must contains one lowercase characters
  (?=.*[A-Z])       #   must contains one uppercase characters
  (?=.*['W])        #   must contains at least one special character
              .     #     match anything with previous condition checking
                {6,20}  #        length at least 6 characters and maximum of 20 
)           # End of group

"/W"将增加可用于密码的字符范围,并且 PIT 可以更安全。

        string pattern1 = @"^[a-zA-Z]([a-zA-Z])*"; //start and any number of characters
        string pattern2 = @"[0-9]+"; //one number or more numbers
        string pattern3 = @"[@#$%]*"; // special symbol allowed
        string pattern4 = @"(.)'1";//consecutive characters
        string pattern5 = @"^(.){6,10}$"; //min max

如果您想验证密码,您可以使用组来执行此操作;

(?<a>[a-zA-Z])?(?<b>[0-9])?(?<c>[@%$#/'''(')])?

将为您提供 3 组(a、b 和 c)中的任何一组的匹配项

向上和向下字符将属于 A 组

数字字符将位于 B 组中

特殊字符将在C组中

您可以使用 regex.match.groups("a").count 查看是否可以找到组 A 中的任何字符

如果您在所有 3 个组中找到字符,则密码为强密码。