验证在 EditText 中输入的电子邮件 ID 的模式 [重复]

Posted

技术标签:

【中文标题】验证在 EditText 中输入的电子邮件 ID 的模式 [重复]【英文标题】:Pattern to validate the email id entered in EditText [duplicate] 【发布时间】:2012-10-21 19:41:48 【问题描述】:

模式匹配以验证在 Edittext 中输入的 emailid。

Pattern.compile("[a-zA-Z0-9+._%-+]1,256" + "[a-zA-Z0-9][a-zA-Z0-9-]0,64" + "(" + "." + "[a-zA-Z0-9][a-zA-Z0-9-]0,25" + ")+"); 

【问题讨论】:

模式 .compile("[a-zA-Z0-9+._%-+]1,256" + "@" + "[a-zA-Z0-9][a- zA-Z0-9-]0,64" + "(" + "." + "[a-zA-Z0-9][a-zA-Z0-9-]0,25" + " )+"); 先生这是复制粘贴但我无法理解... 检查这个:***.com/questions/201323/… 您还有其他简单的选择吗? 【参考方案1】:

试试这个:它对我来说运行良好。

Set Input Type "Email" 用于在 XML 文件中编辑文本。

public void Is_Valid_Email()
        
        if(Email_Text.getText().toString()!=null)
        
            if(isEmailValid(Email_Text.getText().toString())==false ) 
            
                Toast.makeText(getApplicationContext(), "Invalid Email Address ",Toast.LENGTH_LONG).show();
                Valid_Email=null;
            
            else
            
                Valid_Email=Email_Text.getText().toString();
            
        
        else
        
            Valid_Email=null;
        

// end of email

// Android 提供默认验证电子邮件地址的方法

boolean isEmailValid(CharSequence email) 

    return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();
 // end of email matcher

享受吧。

【讨论】:

最好使用默认而不是手工制作。很好的答案...:-)【参考方案2】:

使用以下函数验证电子邮件 ID。

public boolean isValidEmailAddress(String emailAddress)
  
    String  expression="^[\\w\\-]([\\.\\w])+[\\w]+@([\\w\\-]+\\.)+[A-Z]2,4$";  
    CharSequence inputStr = emailAddress;  
    Pattern pattern = Pattern.compile(expression,Pattern.CASE_INSENSITIVE);  
    Matcher matcher = pattern.matcher(inputStr);  
    return matcher.matches();  

【讨论】:

【参考方案3】:

用这个改变你的正则表达式

"[a-zA-Z0-9._-]+@[a-z]+\.+[a-z]+"

或点击下面的链接了解 java 中的电子邮件模式

Email pattern in java

【讨论】:

【参考方案4】:

使用以下方法检查有效的电子邮件 ID。

/**
 * method is used for checking valid email id format.
 * 
 * @param email
 * @return boolean true for valid false for invalid
 */
public static boolean isEmailValid(String email) 
    boolean isValid = false;

    String expression = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-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;

【讨论】:

【参考方案5】:

EMAIL ADDRESS VALIDATION 的正则表达式

static final String EMAIL_PATTERN = 
        "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]2,)$";
  String email = (EditText)findViewById(R.id.edittext);

if(!(_email.matches(EMAIL_PATTERN)))

    Toast.makeText(getApplicationContext(),"Email is not valid", Toast.LENGTH_SHORT).show();

【讨论】:

@VarunVishnoi 我认为您发布问题是为了提高您的声誉。为什么你每次都要求投票? 因为我至少需要 15 名声望...您说得对,先生...这里的一切都需要时间...我不能为我的问题聊天,我不能在 20 分钟之前发布问题。这就是为什么我要求投票给我......但没问题先生,我可以管理。谢谢q @VarunVishnoi 如果您想提高声誉,请回答问题!获得更多声誉所需的时间更少。

以上是关于验证在 EditText 中输入的电子邮件 ID 的模式 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在注册用户之前验证来自 EditText 的电子邮件和密码输入

EditText 上的 Android 电子邮件验证

Android电子邮件EditText验证[重复]

Android 电子邮件验证不起作用

如何检查在edittext中输入的有效电子邮件格式

如何在 Android 中禁用 EditText