标准
我试过这个
((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,15})
但这会检查一个小写和大写,但我需要一个。
答案 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)