文本框验证 #2

Der*_*rek 2 c# passwords validation winforms

我目前正在开发 Windows 窗体应用程序。如何在 Visual Studio (C#) 中创建密码文本框的验证,该文本框仅允许包含以下内容的文本:

  • 至少一个大写字母
  • 至少一个小写字母
  • 至少一个符号
  • 必须大于 8 个字符

Hab*_*bib 5

由于它是一个 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
}
Run Code Online (Sandbox Code Playgroud)

您可以针对“提交”按钮(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)
        );
}
Run Code Online (Sandbox Code Playgroud)

例如,如果您想验证 Button_Click 上的文本,则:

private void button1_Click(object sender, EventArgs e)
{
    if(IsValidPassword(textboxPassword.Text))
    {
        //valid password
    }
    else
    {
        //invalid password

    }

}
Run Code Online (Sandbox Code Playgroud)

编辑:

如果您想要密码中包含数字,那么您可以添加一项额外的检查,例如:

password.Any(char.IsDigit)
Run Code Online (Sandbox Code Playgroud)

要检查"!@#"添加检查。

password.Any(char.IsPunctuation)
Run Code Online (Sandbox Code Playgroud)