2

私は現在、Windowsフォームアプリケーションに取り組んでいます。以下を含むテキストのみを許可するビジュアル スタジオ (C#) でパスワード テキスト ボックスの検証を作成するにはどうすればよいですか。

  • 少なくとも 1 つの大文字
  • 少なくとも 1 つの小文字
  • 少なくとも 1 つのシンボル
  • 8文字以上である必要があります
4

3 に答える 3

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
}

このコードは、送信ボタン(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)
于 2012-11-30T05:31:45.627 に答える
1

これがその方法です:

  • 長さは 8 文字である必要があります: これには正規表現は必要ありません。.Length プロパティを使用するだけで十分です。

  • 大文字 1 文字を含む: [AZ]+ 正規表現を使用できます。文字列に少なくとも 1 つの大文字が含まれている場合、この正規表現は true を返します。

  • 1 特殊文字: 文字または数字以外の任意の文字に一致する \W を使用するか、[!@#] のようなものを使用して特殊文字のカスタム リストを指定できます。ただし、$、^、( および ) などの文字は正規表現言語の特殊文字であるため、\$ のようにエスケープする必要があることに注意してください。つまり、\W を使用できます。

  • 英数字: \w+ を使用すると、任意の文字、数字、およびアンダースコアと一致する必要があります。

詳細については、このチュートリアルをご覧ください。

于 2012-11-30T05:41:37.460 に答える
0

そのウェブの場合はこの正規表現を試してください-(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})

出典:

于 2012-11-30T05:35:28.963 に答える