- /**
- *驗證暱稱
- **/
- private boolean verifyNickname() {
- String nickname = edt_username.getText().toString();
- if (nickname == null || nickname.length() == 0) {
- edt_username.setError("不能爲空");
- return false;
- }
- int len = 0;
- char[] nickchar = nickname.toCharArray();
- for (int i = 0; i < nickchar.length; i++) {
- if (isChinese(nickchar[i])) {
- len += 2;
- } else {
- len += 1;
- }
- }
- if (len < 4 || len > 15) {
- edt_username.setError("正確的暱稱應該爲\n1、4-15個字符\n2、2-7個漢字\n3、不能是郵箱和手機號");
- return false;
- }
- return true;
- }
- private boolean isChinese(char c) {
- Character.UnicodeBlock ub = Character.UnicodeBlock.of(c);
- if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS
- || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS
- || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A
- || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION
- || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION
- || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) {
- return true;
- }
- return false;
- }
- /**
- * 判斷是否爲手機號
- **/
- private boolean isPhone(String inputText) {
- Pattern p = Pattern
- .compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");
- Matcher m = p.matcher(inputText);
- return m.matches();
- }
- /**
- * 判斷格式是否爲email
- **/
- public boolean isEmail(String email) {
- String str = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
- Pattern p = Pattern.compile(str);
- Matcher m = p.matcher(email);
- return m.matches();
- }