如何在安卓中检查电子邮件地址,包括 UTF-8


 private boolean isValidEmail(String email){
    boolean isValid = false;
    String expression = "^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@"
            +"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?"
            +"[0-9]{1,2}|25[0-5]|2[0-4][0-9])\."
            +"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?"
            +"[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|"
            +"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$";
    CharSequence inputStr = email;
    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher(inputStr);
    if (matcher.matches()) {
        isValid = true;
    }
    return isValid;
}

我正在使用此代码检查电子邮件地址是否有效。但在 UTF-8(非英语)的情况下,它是有效的。我想检查电子邮件格式,包括 UTF-8。请帮忙。

您可以使用 android 模式发送电子邮件:

boolean isEmailValid(CharSequence email) {
   return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}

试试这个。希望它能帮助你

public static boolean isValidMailID(String toAddress) {
            if(!isBasicallyValidEmailAddress(toAddress) || toAddress.indexOf('.') == -1)
                return false;
            int index1 = toAddress.lastIndexOf('.');
            int index2 = toAddress.lastIndexOf('@');
            if(toAddress.endsWith("."))
                return false ;
            if( index1 < index2 || (index2 + 1) >= index1)
                return false;
            return true;
        }
        private static boolean isBasicallyValidEmailAddress(String email) {
            if (email == null) {
                return false;
            }
            boolean atFound = false;
            for (int i = 0; i < email.length(); i++) {
                char c = email.charAt(i);
                if ((c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && (c < '0' || c > '9') && !isAtextSymbol(c)) {
                    return false;
                }
                if (c == '@') {
                    if (atFound) {
                        return false;
                    }
                    atFound = true;
                }
            }
            return atFound;
        }
        public static boolean isAtextSymbol(char c) {
            for (int i = 0; i < ATEXT_SYMBOLS.length; i++) {
                if (c == ATEXT_SYMBOLS[i]) {
                    return true;
                }
            }
            return false;
        }

您要应用调用方法是有效邮件ID的地方(传递您的邮件ID)...

最新更新