2012-12-19 66 views

回答

1

爲了回答這個問題,有沒有Android的功能,要做到這一點,最近的和最好的方式是使用正則表達式作爲Mkyong他blog建議:

private Pattern pattern; 
     private Matcher matcher; 

     private static final String PASSWORD_PATTERN = 
       "((?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})"; 

     public PasswordValidator(){ 
      pattern = Pattern.compile(PASSWORD_PATTERN); 
     } 

     /** 
     * Validate password with regular expression 
     * @param password password for validation 
     * @return true valid password, false invalid password 
     */ 
     public boolean validate(final String password){ 

      matcher = pattern.matcher(password); 
      return matcher.matches(); 

     } 
0

聽起來像是你需要一個外部庫,如http://code.google.com/p/vt-middleware/wiki/vtpassword

或者,它是很簡單的代碼像檢查多久,它是什麼東西,有什麼樣的角色等,並打印出基於不同的東西。

如果說一個用戶有一個長度爲10的密碼和一些大寫字符,那麼你可以基於這個增加一些密碼強度參數,從而獎勵更復雜的密碼。你可以自己設定閾值。

+0

是的,它可能是一個外部的lybrary,或者只是我可以在另一個代碼上實現的類包例如! –

+0

是或者很好,如果你想在自己的代碼中創建它,很容易設置正則表達式來測試/限制特殊字符。 – Paul

0

如果dont't要使用外部庫..你可以自己去查吧..事情是這樣的:

public void onSubmitClicked(View v) 
    { 
     String pass = passwordEditText.getText().toString(); 
     if(TextUtils.isEmpty(pass) || pass.length < [YOUR MIN LENGTH]) 
     { 
      passwordEditText.setError("You must more characters in your password"); 
      return; 
     } 
     if(....){ 
       // do other controls here 
     } 


    } 
+0

這就是我在想什麼,但檢查密碼是否包含特殊字符呢?我正在尋找一個函數來試圖分開「for」循環或預先定義的字符串數組... –