我目前正在开发一个 Windows 表单应用程序。如何在 Visual Studio (C#) 中为我的密码文本框创建验证,该文本框只允许包含以下内容的文本:
- 至少一个大写字母
- 至少一个小写字母
- 至少一个符号
- 必须超过 8 个字符
我目前正在开发一个 Windows 表单应用程序。如何在 Visual Studio (C#) 中为我的密码文本框创建验证,该文本框只允许包含以下内容的文本:
由于它是一个 Windows 表单应用程序,因此您可以在代码中进行验证,如下所示:
string password = textBoxPassword.Text;
if (password.Length > 8 && // Must be above 8 characters
password.Any(char.IsUpper) && //At least one uppercase
password.Any(char.IsLower) && //At least one lowercase
password.Any(char.IsSymbol) //At least one symbol
)
{
//Valid password
}
else
{
//Invalid password
}
您可以针对提交按钮(Button_Click 事件)或 TextBox TextChanging 使用此代码。您可以将其提取到如下方法:
private bool IsValidPassword(string password)
{
return (password.Length > 8 &&
password.Any(char.IsUpper) &&
password.Any(char.IsLower) &&
password.Any(char.IsSymbol)
);
}
例如,如果您想验证 Button_Click 上的文本,则:
private void button1_Click(object sender, EventArgs e)
{
if(IsValidPassword(textboxPassword.Text))
{
//valid password
}
else
{
//invalid password
}
}
编辑:
如果您想要密码中的数字,则可以添加一张额外的支票,例如:
password.Any(char.IsDigit)
检查"!@#"
添加检查。
password.Any(char.IsPunctuation)
它是这样做的:
必须为 8 个字符长:您不需要正则表达式。使用 .Length 属性就足够了。
包括1个大写字母:可以使用[AZ]+正则表达式。如果字符串至少包含一个大写字母,则此正则表达式将返回 true。
1 特殊字符:您可以使用 \W 来匹配任何不是字母或数字的字符,或者,您可以使用类似 [!@#] 的东西来指定特殊字符的自定义列表。请注意,尽管 $、^、( 和 ) 等字符是正则表达式语言中的特殊字符,因此需要像这样对它们进行转义:\$。简而言之,您可以使用 \W。
字母数字字符:使用 \w+ 应该匹配任何字母和数字以及下划线。
查看本教程以获取更多信息。
如果它是网络,请尝试这个正则表达式-(请在问题中提及)
( # Start of group
(?=.*\d) # must contain at least one digit
(?=.*[A-Z]) # must contain at least one uppercase character
(?=.*\W) # must contain at least one special symbol
. # match anything with previous condition checking
{8,8} # length at least 8 characters and also maximum of 8
) # End of group
在一行中:
((?=.*\d)(?=.*[A-Z])(?=.*\W).{8,8})