小编Hee*_*ers的帖子

正则表达式在ASP.net中的强密码

我需要检查包含以下4个中的3个的密码:

  1. 小写字母
  2. 大写字母
  3. 数字字符
  4. 特殊字符(如%,$,#,...)

密码长度必须介于6到20个字符之间.我目前有这个:

public void ChangePassword(string password)
    {

        Regex regex1 = new Regex("^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]){6,20}$");
        Regex regex2 = new Regex("^(?=.*[0-9])(?=.*[a-z])(?=.*?[#?!@$%^&*-]){6,20}$");
        Regex regex3 = new Regex("^(?=.*[0-9])(?=.*[A-Z])(?=.*?[#?!@$%^&*-]){6,20}$");
        Regex regex4 = new Regex("^(?=.*[a-z])(?=.*[A-Z])(?=.*?[#?!@$%^&*-]){6,20}$");
        Regex regex5 = new Regex("^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*?[#?!@$%^&*-]){6,20}$");

        Match match1 = regex1.Match(password);
        Match match2 = regex2.Match(password);
        Match match3 = regex3.Match(password);
        Match match4 = regex4.Match(password);
        Match match5 = regex5.Match(password);

        if (match1.Success || match2.Success || match3.Success ||
            match4.Success || match5.Success)
        {

            Password = password;

        }
        else
        {
            throw new PasswordNotGoodException();
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,这根本不匹配.这是一个学校项目,所以我真的可以使用一些帮助.

c# regex asp.net passwords

3
推荐指数
1
解决办法
6502
查看次数

标签 统计

asp.net ×1

c# ×1

passwords ×1

regex ×1