【问题标题】:Android email validators, wont pick up an ac.uk email aAndroid 电子邮件验证器,不会接收 ac.uk 电子邮件
【发布时间】:2020-08-05 09:14:10
【问题描述】:

为了注册用户,我希望他们能够使用以 .ac.uk 结尾的学生电子邮件地址,但尝试了一些 emailCharacter 字符串,但始终返回无效的电子邮件地址。

private Boolean validateEmail() {
    String entry = regEmail.getEditText().getText().toString();
    //Characters accepted for email address
    String emailCharacters =  "[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}" +
            ")+";




   // "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]";
    //If empty display error
    if (entry.isEmpty()) {
        regEmail.setError("Email field cannot be empty");
        return false;
        //If email address does not follow constraints
    } else if (!entry.matches(emailCharacters)) {
        regEmail.setError("Invalid email address");
        return false;

更新:

    //Validation for email
    private Boolean validateEmail() {
        String entry = regEmail.getEditText().getText().toString();
//Characters accepted for email address
            String emailCharacters =  "[a-zA-Z0-9+._%-+]{1,256}" +
                    "@" +
                    "[a-zA-Z0-9][a-zA-Z0-9-]{0,64}" +
                    "(" +
                    "." +
                    "[a-zA-Z0-9]{0,25}" +
                    "."+
                    "[a-zA-Z0-9]{0,25}" +     // add these item more in your regex
                    ")+";

【问题讨论】:

    标签: android email-validation


    【解决方案1】:

    将您的正则表达式更改为:

    要尝试您的正则表达式,请使用 https://regex101.com/

      //regex for conditions .ac.uk  
     [a-zA-Z0-9+._%-+]{1,256}@[a-zA-Z0-9]{0,64}(.[a-zA-Z0-9]{0,25}.[a-zA-Z0-9]{0,25})    
    
    
    private Boolean validateEmail() {
    String entry = regEmail.getEditText().getText().toString();
    //Characters accepted for email address
    String emailCharacters =  "[a-zA-Z0-9+._%-+]{1,256}" +
            "@" +
            "[a-zA-Z0-9][a-zA-Z0-9-]{0,64}" +
            "(" +
            "." +
            "[a-zA-Z0-9]{0,25}" +
            "."+                   
            "[a-zA-Z0-9]{0,25}" +     // add these item more in your regex
            ")+";
    
    
    
    
      // "[a-zA-Z0-9._-]+@[a-z]+\\.+[a-z]";
    //If empty display error
    if (entry.isEmpty()) {
        regEmail.setError("Email field cannot be empty");
        return false;
        //If email address does not follow constraints
    } else if (!entry.matches(emailCharacters)) {
        regEmail.setError("Invalid email address");
        return false;
    } else if(entry.matches(emailCharacters))
       return true;
    }
    

    【讨论】:

    • 对不起,您的答案有什么不同,“在此处输入代码”部分中有什么代码?谢谢
    • String emailCharacters = "[a-zA-Z0-9+._%-+]{1,256}" + "@" +enter code here "[a-zA-Z0-9][ a-zA-Z0-9-]{0,64}" + "(" + "." + "[a-zA-Z0-9]{0,25}" + "."+ "[a-zA -Z0-9]{0,25}" + // 在你的正则表达式中添加这些项目 ")+";
    • 对不起,这里的输入代码部分是什么代码我有点困惑?
    • 抱歉添加错误。现在检查 String emailCharacters = "[a-zA-Z0-9+._%-+]{1,256}" + "@" + "[a-zA-Z0-9][a-zA-Z0-9-] {0,64}" + "(" + "." + "[a-zA-Z0-9]{0,25}" + "."+ "[a-zA-Z0-9]{0,25 }" + // 在你的正则表达式中添加这些项目 ")+";
    • 我已尝试但仍收到无效的电子邮件地址消息。我发布了我目前拥有的更新
    【解决方案2】:

    尝试使用android.util.Patterns.EMAIL_ADDRESS.matcher(entry).matches()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-23
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2020-04-10
      • 2018-10-23
      相关资源
      最近更新 更多