欢迎访问宙启技术站
智能推送

编写 Java 函数实现验证一个字符串是否为合法的邮箱地址格式

发布时间:2023-05-31 06:20:44

一个合法的邮箱地址需要满足以下条件:

1. 由用户名和域名组成,中间用@符号分隔;

2. 用户名只能由字母、数字、下划线和点号组成,长度在3到30个字符之间;

3. 域名只能由字母、数字、下划线、点号和减号组成,长度在2到10个字符之间;

4. 域名的最后一部分只能是字母,长度在2到6个字符之间。

根据上述规则,可以编写一个Java函数来验证一个字符串是否为合法的邮箱地址格式。以下是代码实现:

public static boolean isValidEmail(String email) {
    String[] parts = email.split("@");
    if (parts.length != 2) {
        return false;
    }
    String username = parts[0];
    String domain = parts[1];
    if (username.length() < 3 || username.length() > 30) {
        return false;
    }
    if (!username.matches("[A-Za-z0-9_.]+")) {
        return false;
    }
    String[] domainParts = domain.split("\\.");
    if (domainParts.length < 2 || domainParts.length > 3) {
        return false;
    }
    for (String domainPart : domainParts) {
        if (domainPart.length() < 2 || domainPart.length() > 10) {
            return false;
        }
        if (!domainPart.matches("[A-Za-z0-9_.-]+")) {
            return false;
        }
    }
    String lastDomainPart = domainParts[domainParts.length - 1];
    if (lastDomainPart.length() < 2 || lastDomainPart.length() > 6) {
        return false;
    }
    if (!lastDomainPart.matches("[A-Za-z]+")) {
        return false;
    }
    return true;
}

该函数首先将邮箱地址按照@符号进行分割,得到用户名和域名两部分。然后对用户名和域名的格式进行检查,如果不符合要求,返回false。用户名的检查使用正则表达式,匹配字母、数字、下划线和点号。域名的检查需要特别注意,包括检查域名的个数、长度和格式,以及最后一部分是否为字母。如果所有条件都满足,则返回true。

在实际应用中,可以调用该函数来判断用户输入的邮箱地址是否合法,以防止恶意攻击或错误输入。