有時候會遇到 Backend 在Response data 的時候吐出一些錯誤格式的json,
如下:
{
"AAA": "YES",
"BBB": [
{ "CCC": "1", },
{ "CCC": "3", },
{ "CCC": "5", },
]
}
可以看到結束前的中括號前多了一個逗號,
一般而言會跟 Backend 說並等他修正,
但如果app是online的,或Backend很忙改很慢的時候,
問一些前輩們得到這樣的解決方式,
可以先用Regular Expression修正。
Regular Expression 語法:reg_replace(",\s*\]", "]")
Android 語法:
public String responseFix(String response) {
return response.replaceAll(",\\s*\\]", "]");
}
2016年3月25日 星期五
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之間
改寫後
收工。
順便找了網路上的一些範例:
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之間
Java Regular Expression的學習筆記 [精華]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;}
改寫後
參考了Patterns裡的EMAIL_ADDRESSpublic static boolean isValidPassword(String password){ return Pattern.compile("^(?=.*[a-zA-Z]+)(?=.*\\d+)[a-zA-Z0-9]{8,12}$") .matcher(password).matches();}
收工。
訂閱:
文章 (Atom)