2015年12月9日 星期三

Android Regular Expression正規表示法(Android的一百種奇技淫巧)

昨天看到了這個語法,就學習了一下,多用於字串處理及限制輸入,
順便找了網路上的一些範例:

1.
http://taichunmin.logdown.com/posts/178274-regular-expression-examples
正規表示法範例

2.
http://developer.android.com/intl/zh-tw/reference/java/util/regex/Pattern.html
Android上的API

3.
http://givemepass.blogspot.tw/2012/03/blog-post.html
如何使用正規表示法-1

4.
http://www.jackforfun.com/2008/07/regular-expression.html
驗證密碼的 Regular Expression

5.我覺得寫的蠻詳細的網頁是這個
https://www.javaworld.com.tw/jute/post/view?bid=20&id=130126&sty=1&tpg=1&age=-1
Java Regular Expression的學習筆記 [精華]

========================================================
手上的程式

需要密碼包含英文大小寫及數字,長度介於8-12之間
public static int CheckPassword(String resource) {
    int length = resource.length();    if (length >= 12 || length < 8)
        return 0;    try {
        int strong = 0;        for (int i = 0; i < length; i++) {
            if (resource.charAt(i) >= 'a' && resource.charAt(i) <= 'z') {
                strong++;                break;            }
        }
        for (int i = 0; i < length; i++) {
            if (resource.charAt(i) >= 'A' && resource.charAt(i) <= 'Z') {
                strong++;                break;            }
        }
        for (int i = 0; i < length; i++) {
            if (resource.charAt(i) >= '0' && resource.charAt(i) <= '9') {
                strong++;                break;            }
        }
        for (int i = 0; i < length; i++) {
            if (!((resource.charAt(i) >= 'a' && resource.charAt(i) <= 'z')
                    || (resource.charAt(i) >= 'A' && resource.charAt(i) <= 'Z') 
                    || (resource.charAt(i) >= '0' && resource.charAt(i) <= '9'))) {
                strong++;                break;            }
        }
        return strong;    } catch (Exception e) {
    }
    // 例外    return 0;}
Java Regular Expression的學習筆記 [精華]
改寫後

public static boolean isValidPassword(String password){
    return Pattern.compile("^(?=.*[a-zA-Z]+)(?=.*\\d+)[a-zA-Z0-9]{8,12}$")
            .matcher(password).matches();}
參考了Patterns裡的EMAIL_ADDRESS

收工。

沒有留言:

張貼留言

有任何疑問歡迎寄信給我,
但垃圾訊息我會刪光喔!