Android 密碼校驗,字符串中必須包含字母或者數字

下面是Util類的內容提供了三種密碼規則的校驗和一個判斷輸入類型的方法

[java] view plain copy
  1. /** 
  2.  * Created by zhangshun on 2016/8/18. 
  3.  */  
  4. public class PwdCheckUtil {  
  5.   
  6.     /** 
  7.      * 規則1:至少包含大小寫字母及數字中的一種 
  8.      * 是否包含 
  9.      * 
  10.      * @param str 
  11.      * @return 
  12.      */  
  13.     public static boolean isLetterOrDigit(String str) {  
  14.         boolean isLetterOrDigit = false;//定義一個boolean值,用來表示是否包含字母或數字  
  15.         for (int i = 0; i < str.length(); i++) {  
  16.             if (Character.isLetterOrDigit(str.charAt(i))) {   //用char包裝類中的判斷數字的方法判斷每一個字符  
  17.                 isLetterOrDigit = true;  
  18.             }  
  19.         }  
  20.         String regex = "^[a-zA-Z0-9]+$";  
  21.         boolean isRight = isLetterOrDigit && str.matches(regex);  
  22.         return isRight;  
  23.     }  
  24.   
  25.     /** 
  26.      * 規則2:至少包含大小寫字母及數字中的兩種 
  27.      * 是否包含 
  28.      * 
  29.      * @param str 
  30.      * @return 
  31.      */  
  32.     public static boolean isLetterDigit(String str) {  
  33.         boolean isDigit = false;//定義一個boolean值,用來表示是否包含數字  
  34.         boolean isLetter = false;//定義一個boolean值,用來表示是否包含字母  
  35.         for (int i = 0; i < str.length(); i++) {  
  36.             if (Character.isDigit(str.charAt(i))) {   //用char包裝類中的判斷數字的方法判斷每一個字符  
  37.                 isDigit = true;  
  38.             } else if (Character.isLetter(str.charAt(i))) {  //用char包裝類中的判斷字母的方法判斷每一個字符  
  39.                 isLetter = true;  
  40.             }  
  41.         }  
  42.         String regex = "^[a-zA-Z0-9]+$";  
  43.         boolean isRight = isDigit && isLetter && str.matches(regex);  
  44.         return isRight;  
  45.     }  
  46.   
  47.     /** 
  48.      * 規則3:必須同時包含大小寫字母及數字 
  49.      * 是否包含 
  50.      * 
  51.      * @param str 
  52.      * @return 
  53.      */  
  54.     public static boolean isContainAll(String str) {  
  55.         boolean isDigit = false;//定義一個boolean值,用來表示是否包含數字  
  56.         boolean isLowerCase = false;//定義一個boolean值,用來表示是否包含字母  
  57.         boolean isUpperCase = false;  
  58.         for (int i = 0; i < str.length(); i++) {  
  59.             if (Character.isDigit(str.charAt(i))) {   //用char包裝類中的判斷數字的方法判斷每一個字符  
  60.                 isDigit = true;  
  61.             } else if (Character.isLowerCase(str.charAt(i))) {  //用char包裝類中的判斷字母的方法判斷每一個字符  
  62.                 isLowerCase = true;  
  63.             } else if (Character.isUpperCase(str.charAt(i))) {  
  64.                 isUpperCase = true;  
  65.             }  
  66.         }  
  67.         String regex = "^[a-zA-Z0-9]+$";  
  68.         boolean isRight = isDigit && isLowerCase && isUpperCase && str.matches(regex);  
  69.         return isRight;  
  70.     }  
  71.   
  72.     /** 
  73.      *   判斷EditText輸入的數字、中文還是字母方法 
  74.      */  
  75.     public static void whatIsInput(Context context, EditText edInput) {  
  76.         String txt = edInput.getText().toString();  
  77.   
  78.         Pattern p = Pattern.compile("[0-9]*");  
  79.         Matcher m = p.matcher(txt);  
  80.         if (m.matches()) {  
  81.             Toast.makeText(context, "輸入的是數字", Toast.LENGTH_SHORT).show();  
  82.         }  
  83.         p = Pattern.compile("[a-zA-Z]");  
  84.         m = p.matcher(txt);  
  85.         if (m.matches()) {  
  86.             Toast.makeText(context, "輸入的是字母", Toast.LENGTH_SHORT).show();  
  87.         }  
  88.         p = Pattern.compile("[\u4e00-\u9fa5]");  
  89.         m = p.matcher(txt);  
  90.         if (m.matches()) {  
  91.             Toast.makeText(context, "輸入的是漢字", Toast.LENGTH_SHORT).show();  
  92.         }  
  93.     }  
  94. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章