电子邮件验证正则表达式的java代码

标签 java regex

<分区>

我尝试在 java 中模拟没有正则表达式的电子邮件验证并编写了这段代码。我需要帮助来提高这段代码的效率(或者请给我一个更好的方法来解决这个问题)

正则表达式:^[(a-zA-Z-0-9-\\_\\+\\.)]+@[(a-z-A-z)]+\\.[(a-zA- z)]{2,3}$

public static boolean isValidEmailAddress(String email) {

    boolean flag1 = false;
    boolean flag2=false;
    boolean flag3=false;
    int j=0;
    char[] emailChars = email.toCharArray();
    for (int i = 0; i < emailChars.length;) {
        char c = emailChars[i];
        if (Character.isLetterOrDigit(c)) {
                i++;
            if(flag1==true&&flag2==true){
                j++;
            }
        } else if (c == '@' && flag1==false&&flag2==false && flag3==false) {
            i++;
            flag1=true;
        } else if(c=='.' && flag1==true && flag2==false&&flag3==false){
            i++;
            flag2 = true;
        }
        if(j==2 || j==3){
            flag3=true;
        }
    }
    return flag1&&flag2&&flag3;

}

最佳答案

现实世界中的电子邮件验证不是那么原始的任务,它已经被解决了很多次。我建议您不要重新发明轮子,而是使用 Apache Commons EmailValidator .

关于电子邮件验证正则表达式的java代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25030857/

相关文章:

java - 如何以编程方式绑定(bind)上下文特定的 JNDI 资源

java - VSCode无法导入外部库

ruby - 如果正则表达式不匹配,则从数组中删除元素

java - 如何禁止使用这些字符 € [\] ^ { | } ~ 在 java 字符串中

Python正则表达式匹配子reddit名称

javascript - Nodejs readFileSync 两个字符串之间的正则表达式标记

Java 9 Cleaner 正确用法

java - 从Java中的字符串中删除空格

java - 递减循环的最佳用法

java |防止除下划线之外的任何特殊字符