2017-06-23 7 views
0

私はこの上パスワード検証を追加したいが、それを得ることに問題を取得し、私はこれらの少なくとも一部が含まパスワードパターンたい:文字 Androidでパスワードパターンによるパスワード検証を実装するにはどうすればよいですか?

  • 特殊文字の

    • 数を
    • 小文字
    • 大文字

    しかし、私はこれを達成することができません、助けてください。

    public class SignUp extends MainActivity { 
        private EditText et_name, et_email, et_password, et_cpassword; 
        private String name, email, password, cpassword; 
        Button signupbtn; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.sign_up_form); 
        et_name = (EditText) findViewById(R.id.name); 
        et_email = (EditText) findViewById(R.id.Email); 
        et_password = (EditText) findViewById(R.id.Password); 
        et_cpassword = (EditText) findViewById(R.id.Confirm_Password); 
        signupbtn = (Button) findViewById(R.id.Signbtn); 
        signupbtn.setOnClickListener(new View.OnClickListener() { 
         @Override 
         public void onClick(View v) { 
          register(); 
         } 
        }); 
    } 
    
    public void register() { 
        initialise(); 
        if (!validate()) { 
         Toast.makeText(this, "Sign up Failed", Toast.LENGTH_SHORT).show(); 
        } else { 
         onSignUpSuccess(); 
        } 
    } 
    
    public void onSignUpSuccess() { 
        Intent intent = new Intent(SignUp.this, HomePage.class); 
        startActivity(intent); 
        finish(); 
    } 
    
    public boolean validate() { 
        boolean valid = true; 
        if (name.isEmpty() || name.length() > 32) { 
         et_name.setError("please enter valid name"); 
         valid = false; 
        } 
        if (email.isEmpty() || !Patterns.EMAIL_ADDRESS.matcher(email).matches()) { 
         et_email.setError("please enter valid Email"); 
         valid = false; 
        } 
        if (password.isEmpty()) 
         et_password.setError("please enter a valid password"); 
        return valid; 
    } 
    public void initialise(){ 
        name = et_name.getText().toString().trim(); 
        email = et_email.getText().toString().trim(); 
        password = et_password.getText().toString().trim(); 
        cpassword = et_cpassword.getText().toString().trim(); 
    } 
    } 
    
  • 答えて

    0

    あなたはこの次のクラスを使用することができます。私は、Android Studioを使用しています

    は、以下の私のJavaクラスファイルです。

    public class Validation { 
    
         // Regular Expression 
         // you can change the expression based on your need 
         private static final String EMAIL_REGEX = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; 
         //private static final String EMAIL_REGEX = "(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"; 
         private static final String PHONE_REGEX = "\\d{3}-\\d{7}"; 
         private static final String ZIP_REGEX = "\\d{5}"; 
         // Error Messages 
         private static final String REQUIRED_MSG = "required"; 
         private static final String EMAIL_MSG = "invalid email"; 
         private static final String PHONE_MSG = "###-#######"; 
         private static final String ZIP_MSG = "#####"; 
    
         public static boolean isEmailAddress(EditText editText, boolean required) { 
          return isValid(editText, EMAIL_REGEX, EMAIL_MSG, required); 
         } 
    
         public static boolean isPhoneNumber(EditText editText, boolean required) { 
          return isValid(editText, PHONE_REGEX, PHONE_MSG, required); 
         } 
    
         public static boolean isZip(EditText editText,boolean required){ 
          return isValid(editText,ZIP_REGEX,ZIP_MSG,required); 
         } 
    
         public static boolean isValid(EditText editText, String regex, String errMsg, boolean required) { 
    
          String text = editText.getText().toString().trim(); 
          editText.setError(null); 
    
          if (required && !hasText(editText)) return false; 
    
          if (required && !Pattern.matches(regex, text)) { 
           editText.setError(errMsg); 
           return false; 
          }; 
    
          return true; 
         } 
    
         public static boolean hasText(EditText editText) { 
    
          String text = editText.getText().toString().trim(); 
          editText.setError(null); 
    
          if (text.length() == 0) { 
           editText.setError(REQUIRED_MSG); 
           return false; 
          } 
    
          return true; 
         } 
    } 
    
    0

    あなたはこのようなルックスを探しているパターン:

    ^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{4,}$ 
    

    これは、数字、小文字大文字や特殊文字を使用するようにユーザーを強制すべきである完全なパターンです。

    +0

    私は 'の場合(password.isEmpty()' –

    +0

    それは(同じ行に '場合(password.isEmpty ||!Pattern.matches(パスワード、「^すべきですか?=この文 後にこれを使用する必要があります(?=。* [AZ])(?=。* [@#$%^&+ =])(?= \\ S + $) 。{4、} $ "){ et_password.setError("有効なパスワードを入力してください "); valid = false; } –

    関連する問題