C# 如何验证具有大写、小写和特殊字符的密码?
我需要一个验证,用户需要把一个最小值,1个上限,1个下限和1个特殊字符。。。我只是放了一个验证,用户需要至少6个字母或更多C# 如何验证具有大写、小写和特殊字符的密码?,c#,asp.net,C#,Asp.net,我需要一个验证,用户需要把一个最小值,1个上限,1个下限和1个特殊字符。。。我只是放了一个验证,用户需要至少6个字母或更多 try { string actualPass = this.txtactualPass.Text; string newPass = this.txtnewPass.Text; string reEnterPass = this.txtReEnterPass.Text; if (actualPass == this.Session["pa
try
{
string actualPass = this.txtactualPass.Text;
string newPass = this.txtnewPass.Text;
string reEnterPass = this.txtReEnterPass.Text;
if (actualPass == this.Session["password"].ToString())
{
if (newPass.Length >= 6)
{
您可以检查密码是否包含数字,而不是特殊字符。可能是特殊字符,您可以使用
char.IsSymbol
if
(
newPass.Length >= 6 && //if length is >= 6
newPass.Any(char.IsUpper) && //if any character is upper case
newPass.Any(char.IsSymbol) //better to have a digit then Symbol
)
{
//valid
}
我知道这是一条非常古老的线索,但对于那些寻找类似场景的人来说。我会选择正则表达式
var result = "Password@123";
var expectedPasswordPattern = new Regex(@"^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$");
var isValidPassword = expectedPasswordPattern.IsMatch(result);
Console.WriteLine(isValidPassword);
参考您尝试过什么?另外,我建议在某个库中定义一个密码验证方法,这样当用户订阅或更改密码时,您可以使用相同的方法。可能的重复:我肯定需要转到LINQ:-)每次我看到这样一个好的答案时,它指的是LINQ功能…@Bartdude-它并不总是更快,但绝对更漂亮@user3014210,对于
长度
,您不需要库,它是字符串的属性,对于任何
,您需要使用System.Linq包含代码>,我希望您的目标是框架3.5或higher@Scott-未验证。@user3014210,我不确定您为什么在评论中一直标记Scott,您现在想做什么?您是否试图将您的newPass
与Regex进行比较,以及为什么我的答案中的代码不满足您的条件?