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