Java中利用正規表現判斷E-mail的範例程式碼
阿新 • • 發佈:2019-01-25
//用來判斷e-mail地址的一個範例程式碼
//e-mail域名的正規表現 private static Pattern PATTERN_EMAIL_DOMAIN_PART = Pattern.compile("^([a-zA-Z0-9][a-zA-Z0-9_-]{0,61}[a-zA-Z0-9]|[a-zA-Z0-9])$"); //e-mailID的正規表現 private static Pattern PATTERN_EMAIL_LOCAL = Pattern.compile("^([a-zA-Z0-9_-][a-zA-Z0-9_//.-]*[a-zA-Z0-9_-]|[a-zA-Z0-9_-])$"); //e-mail最大長度 private static int EMAIL_MAX_LENGTH = 128; public static boolean checkEmail(String email) { // 長度檢測 if (email.length() > EMAIL_MAX_LENGTH) { return false; } // '@'個數檢測 String token[] = tokenize(email, "@"); if (token.length != 2) { return false; } // '.'個數檢測 String local = token[0]; String domain = token[1]; token = tokenize(domain, "."); if (token.length <= 1) { return false; } // '.'位置檢測 // ドメインは、63文字以下、先頭末尾が英數字、それ以外が英數字"-","_" for (int i = 0; i < token.length; i++) { if (PATTERN_EMAIL_DOMAIN_PART.matcher(token[i]).matches() == false) { return false; } } // ID的先頭和末尾文字串為英文、數字"-","_"、其他位置的文字串為英文、數字"-","_","." if (PATTERN_EMAIL_LOCAL.matcher(local).matches() == false) { return false; } return true; }