私は現在、Windowsフォームアプリケーションに取り組んでいます。以下を含むテキストのみを許可するビジュアル スタジオ (C#) でパスワード テキスト ボックスの検証を作成するにはどうすればよいですか。
- 少なくとも 1 つの大文字
- 少なくとも 1 つの小文字
- 少なくとも 1 つのシンボル
- 8文字以上である必要があります
私は現在、Windowsフォームアプリケーションに取り組んでいます。以下を含むテキストのみを許可するビジュアル スタジオ (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イベント)またはTextBoxTextChangingに対して使用できます。次のようなメソッドに抽出できます。
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
}
}
編集:
パスワードに数字が必要な場合は、次のようなチェックを1つ追加できます。
password.Any(char.IsDigit)
チェックするにはチェックを"!@#"
追加します。
password.Any(char.IsPunctuation)
これがその方法です:
長さは 8 文字である必要があります: これには正規表現は必要ありません。.Length プロパティを使用するだけで十分です。
大文字 1 文字を含む: [AZ]+ 正規表現を使用できます。文字列に少なくとも 1 つの大文字が含まれている場合、この正規表現は true を返します。
1 特殊文字: 文字または数字以外の任意の文字に一致する \W を使用するか、[!@#] のようなものを使用して特殊文字のカスタム リストを指定できます。ただし、$、^、( および ) などの文字は正規表現言語の特殊文字であるため、\$ のようにエスケープする必要があることに注意してください。つまり、\W を使用できます。
英数字: \w+ を使用すると、任意の文字、数字、およびアンダースコアと一致する必要があります。
詳細については、このチュートリアルをご覧ください。
そのウェブの場合はこの正規表現を試してください-(Plsは問題に言及しています)
( # 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})