2

誰かがAndroidで正規表現を使用することを教えてもらえますか(具体的にはパターンとマッチャー)

String pass_pattern  = "^([A-Za-z0-9][A-Za-z0-9]{4,10})$";
b1= (Button)findViewById(R.id.button1);
    et1= (EditText)findViewById(R.id.editText1);

    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {    
            chek = et1.getText().toString();
            if(chek.equals(""))
            {
            Toast.makeText(getApplicationContext(), "Enter password",1000).show();
            }

            if(chek.matches(pass_pattern)) 
            {
                Toast.makeText(getApplicationContext(), "Valid pAssword",1000).show();
            }else {Toast.makeText(getApplicationContext(), "InvalidpAssword",1000).show();}

        }
    });

これは現在私のコードです。ユーザーが少なくとも1つの小文字と少なくとも1つの大文字と数字を入力したかどうか、長さが4〜10文字であるかどうかを確認したい.

.matches() を介してこれを行うと、上記の文字列の条件の 1 つだけが比較されます。

4

2 に答える 2

0

これを試して:

String pass_pattern  = "^(?=.*\\d)(?=.*[A-Z])(?=.*[a-z])[^\\W_]{4,10}$";
于 2013-05-29T12:09:58.143 に答える
0

正規表現を使わずにそれを行うことができます:

boolean lowerCase = false;
boolean upperCase = false;
boolean digit = false;
int length = password.length();
for (char c : password.toCharArray()) {
    if (Character.isUpperCase(c))
        upperCase = true;
    if (Character.isLowerCase(c))
        lowerCase = true;
    if (Character.isDigit(c))
        digit = true;
    if (lowerCase && upperCase && digit)
        break;
}
于 2013-05-29T12:12:49.693 に答える