如何在android中检查包含UTF-8的电子邮件地址

如何在android中检查包含UTF-8的电子邮件地址,android,utf-8,Android,Utf 8,我正在使用此代码检查电子邮件地址是否有效。但对于UTF-8(非英语),它是有效的。我想检查电子邮件格式,包括UTF-8。请提供帮助。您可以使用android模式发送电子邮件: private boolean isValidEmail(String email){ boolean isValid = false; String expression = "^(([\\w-]+\\.)+[\\w-]+|([a-zA-Z]{1}|[\\w-]{2,}))@"

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

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

 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;
}

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

boolean isEmailValid(CharSequence email) {
   return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
}
public静态布尔值isValidMailID(字符串到地址){
如果(!isBasicallyValidEmailAddress(toAddress)| | toAddress.indexOf('.')=-1)
返回false;
int index1=toAddress.lastIndexOf('.');
int index2=toAddress.lastIndexOf('@');
if(地址以“.”结尾)
返回false;
如果(index1=index1)
返回false;
返回true;
}
私有静态布尔值isBasicallyValidEmailAddress(字符串电子邮件){
如果(电子邮件==null){
返回false;
}
布尔值=false;
对于(int i=0;i'z')&&(c<'a'| c>'z')&(c<'0'| c>'9')&&!isAtextSymbol(c)){
返回false;
}
如果(c=='@'){
如果(atFound){
返回false;
}
atFound=true;
}
}
返回找到的;
}
公共静态布尔isAtextSymbol(字符c){
对于(int i=0;i

要应用调用方法isValidMailId(传递邮件id)的位置…

请参见此处链接和此声明警报变量private static final char[]ATEXT_SYMBOLS={'@',''.','''.};戈巴利
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;
        }