c# - 文本框验证 #2

标签 c# winforms validation passwords

我目前正在开发 Windows 窗体应用程序。我如何在 visual studio (C#) 中为我的密码文本框创建验证,它只允许包含以下文本:

  • 至少一个大写
  • 至少一个小写
  • 至少一个符号
  • 必须超过8个字符

最佳答案

因为它是一个 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)

关于c# - 文本框验证 #2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13639526/

相关文章:

java - Eclipse Indigo - JPA 验证问题

javascript - AngularJS:手动输入时如何验证日期格式(DD/MM/YYYY)

c# - OpenTK/OpenGL : Unable to Get Shaders to Run on VAO

c# - 如何阻止引发 datagridview 中的双击事件?

.net - .NET 桌面应用程序的好例子

C#通过按键结束图像移动

asp.net - MVC3远程模型验证操作中的参数名称

c# - 使用 EF 在 db 中建模树状结构

c# - 是否可以编写 ASP .NET 网站,通过 Skype 或其他方式调用电话号码

c# - asp.net 在 c# 中使用 switch case for datetime.now.hour 格式