Class EmailValidator

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    IPv6AwareEmailValidator

    public class EmailValidator
    extends java.lang.Object
    implements java.io.Serializable

    Perform email validations.

    Based on a script by Sandeep V. Tamhankar https://javascript.internet.com

    This implementation is not guaranteed to catch all possible errors in an email address.

    .
    Since:
    1.4
    See Also:
    Serialized Form
    • Field Detail

      • EMAIL_PATTERN

        private static final java.util.regex.Pattern EMAIL_PATTERN
      • IP_DOMAIN_PATTERN

        private static final java.util.regex.Pattern IP_DOMAIN_PATTERN
      • USER_PATTERN

        private static final java.util.regex.Pattern USER_PATTERN
      • EMAIL_VALIDATOR

        private static final EmailValidator EMAIL_VALIDATOR
        Singleton instance of this class, which doesn't consider local addresses as valid.
      • EMAIL_VALIDATOR_WITH_TLD

        private static final EmailValidator EMAIL_VALIDATOR_WITH_TLD
        Singleton instance of this class, which doesn't consider local addresses as valid.
      • EMAIL_VALIDATOR_WITH_LOCAL

        private static final EmailValidator EMAIL_VALIDATOR_WITH_LOCAL
        Singleton instance of this class, which does consider local addresses valid.
      • EMAIL_VALIDATOR_WITH_LOCAL_WITH_TLD

        private static final EmailValidator EMAIL_VALIDATOR_WITH_LOCAL_WITH_TLD
        Singleton instance of this class, which does consider local addresses valid.
      • allowTld

        private final boolean allowTld
    • Constructor Detail

      • EmailValidator

        protected EmailValidator​(boolean allowLocal)
        Protected constructor for subclasses to use.
        Parameters:
        allowLocal - Should local addresses be considered valid?
      • EmailValidator

        protected EmailValidator​(boolean allowLocal,
                                 boolean allowTld)
        Protected constructor for subclasses to use.
        Parameters:
        allowLocal - Should local addresses be considered valid?
        allowTld - Should TLDs be allowed?
      • EmailValidator

        public EmailValidator​(boolean allowLocal,
                              boolean allowTld,
                              DomainValidator domainValidator)
        constructor for creating instances with the specified domainValidator
        Parameters:
        allowLocal - Should local addresses be considered valid?
        allowTld - Should TLDs be allowed?
        domainValidator - allow override of the DomainValidator. The instance must have the same allowLocal setting.
        Since:
        1.7
    • Method Detail

      • getInstance

        public static EmailValidator getInstance()
        Returns the Singleton instance of this validator.
        Returns:
        singleton instance of this validator.
      • getInstance

        public static EmailValidator getInstance​(boolean allowLocal)
        Returns the Singleton instance of this validator, with local validation as required.
        Parameters:
        allowLocal - Should local addresses be considered valid?
        Returns:
        singleton instance of this validator
      • getInstance

        public static EmailValidator getInstance​(boolean allowLocal,
                                                 boolean allowTld)
        Returns the Singleton instance of this validator, with local validation as required.
        Parameters:
        allowLocal - Should local addresses be considered valid?
        allowTld - Should TLDs be allowed?
        Returns:
        singleton instance of this validator
      • isValid

        public boolean isValid​(java.lang.String email)

        Checks if a field has a valid e-mail address.

        Parameters:
        email - The value validation is being performed on. A null value is considered invalid.
        Returns:
        true if the email address is valid.
      • isValidDomain

        protected boolean isValidDomain​(java.lang.String domain)
        Returns true if the domain component of an email address is valid.
        Parameters:
        domain - being validated, may be in IDN format
        Returns:
        true if the email address's domain is valid.
      • isValidUser

        protected boolean isValidUser​(java.lang.String user)
        Returns true if the user component of an email address is valid.
        Parameters:
        user - being validated
        Returns:
        true if the user name is valid.