如何验证密码是否包含至少一个大写或小写字母?

时间:2015-05-05 08:35:25

标签: c# regex passwords

标准

  1. 密码长度> = 8且< = 15
  2. 一位数(0-9),一个字母(A-Z或a-z),一个特殊字符(@#$ *!)
  3. 我试过这个

    ((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,15})
    

    但这会检查一个小写和大写,但我需要一个。

3 个答案:

答案 0 :(得分:13)

俗话说:“我遇到了问题,所以我想使用正则表达式。现在我有两个问题。”

一个好的方法没有错。

public bool IsPasswordValid(string password)
{
    return password.Length >= 8 &&
           password.Length <= 15 &&
           password.Any(char.IsDigit) &&
           password.Any(char.IsLetter) &&
           (password.Any(char.IsSymbol) || password.Any(char.IsPunctuation)) ;
}

答案 1 :(得分:0)

根据this

,这是一个包含所有允许的特殊符号的RegEx
((?=.*\d)(?=.*[a-zA-Z])(?=.*[@!-'()\+--\/:\?\[-`{}~]).{8,15})

答案 2 :(得分:0)

只需删除AZ匹配组并使用RegexOptions.IgnoreCase声明正则表达式以忽略大小写(即,如果提供的字母大写,小写或两者都无关紧要; az组仍然会匹配他们):

new Regex(@"((?=.*\d)(?=.*[a-z])(?=.*[@#$%]).{8,15})", RegexOptions.IgnoreCase)