Skip to content

Conversation

@XiXiongMaoXiong
Copy link
Contributor

/**
* Returns the domain part of a given Email address
*
* @param email The Email address. E.g Returns "protonmail.com" from the given Email "johnsmith@protonmail.com".
* @return the domain part of a given Email address.
*/
public static String extractEmailProvider(String email) {
return email.substring(email.lastIndexOf("@") + 1);
}

/**
 * Returns the username part of a given Email address. E.g. Returns "johnsmith" from the given Email "johnsmith@protonmail.com".
 *
 * @param email The Email address.
 * @return the username part of a given Email address.
 */
public static String extractEmailUsername(String email) {
    return email.substring(0, email.lastIndexOf("@"));
}


/**
 * Return whether a given Email address is on a specified Email provider. E.g. "johnsmith@protonmail.com" and "gmail.com" will return false.
 *
 * @param email The Email address.
 * @param emailProvider The Email provider to testify against.
 * @return {@code true}: yes<br>{@code false}: no
 */
public static boolean isFromEmailProvider(String email, String emailProvider) {
    return extractEmailProvider(email).equalsIgnoreCase(emailProvider);
}

/**
 * Return whether a given Email address is on any of the specified Email providers list (array). E.g. Useful if you pass it a list of real Email provider services and check if the Email is a disposable Email or a real one.
 *
 * @param email The Email address.
 * @param emailProviders The list of Email providers to testify against.
 * @return {@code true}: yes<br>{@code false}: no
 */
public static boolean isFromAnyOfEmailProviders(String email, String[] emailProviders) {
    return com.blankj.utilcode.util.ArrayUtils.contains(emailProviders, extractEmailProvider(email));
}

/**
     * Returns the domain part of a given Email address
     *
     * @param email The Email address. E.g Returns "protonmail.com" from the given Email "johnsmith@protonmail.com".
     * @return the domain part of a given Email address.
     */
    public static String extractEmailProvider(String email) {
        return email.substring(email.lastIndexOf("@") + 1);
    }

    /**
     * Returns the username part of a given Email address. E.g. Returns "johnsmith" from the given Email "johnsmith@protonmail.com".
     *
     * @param email The Email address.
     * @return the username part of a given Email address.
     */
    public static String extractEmailUsername(String email) {
        return email.substring(0, email.lastIndexOf("@"));
    }


    /**
     * Return whether a given Email address is on a specified Email provider. E.g. "johnsmith@protonmail.com" and "gmail.com" will return false.
     *
     * @param email The Email address.
     * @param emailProvider The Email provider to testify against.
     * @return {@code true}: yes<br>{@code false}: no
     */
    public static boolean isFromEmailProvider(String email, String emailProvider) {
        return extractEmailProvider(email).equalsIgnoreCase(emailProvider);
    }

    /**
     * Return whether a given Email address is on any of the specified Email providers list (array). E.g. Useful if you pass it a list of real Email provider services and check if the Email is a disposable Email or a real one.
     *
     * @param email The Email address.
     * @param emailProviders The list of Email providers to testify against.
     * @return {@code true}: yes<br>{@code false}: no
     */
    public static boolean isFromAnyOfEmailProviders(String email, String[] emailProviders) {
        return com.blankj.utilcode.util.ArrayUtils.contains(emailProviders, extractEmailProvider(email));
    }
@XiXiongMaoXiong
Copy link
Contributor Author

@Blankj

@Blankj Blankj merged commit 64555be into Blankj:master Jun 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants