TextBox验证#2

时间:2012-11-30 05:24:55

标签: c# winforms validation passwords

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

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

3 个答案:

答案 0 :(得分:4)

由于它是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)

答案 1 :(得分:1)

这是完成的方式:

  • 长度必须为8个字符:您不需要正则表达式。运用 .Length属性应该足够了。

  • 包含1个大写字母:您可以使用[A-Z] +常规字母 表达。如果字符串包含至少一个大写字母, 这个正则表达式将产生真实。

  • 1特殊字符:您可以使用匹配任何字符的\ W. 不是字母或数字的字符,或者你可以使用 像[!@#]这样的东西来指定特殊的自定义列表 字符。请注意,$,^,(和)等字符是 正则表达式语言中的特殊字符,所以它们需要 像这样逃脱:\ $。简而言之,您可以使用\ W。

  • 字母数字字符:使用\ w +应匹配任何字母和 数字和下划线。

请查看本教程以获取更多信息。

答案 2 :(得分:0)

尝试使用此正则表达式,如果它的网站(请参阅问题)

(                   # 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})

来源: