这是
django.core.validators的一部分,你可能会觉得很有趣:)
class EmailValidator(RegexValidator): def __call__(self, value): try: super(EmailValidator, self).__call__(value) except ValidationError, e: # Trivial case failed. Try for possible IDN domain-part if value and u'@' in value: parts = value.split(u'@') domain_part = parts[-1] try: parts[-1] = parts[-1].enpre('idna') except UnipreError: raise e super(EmailValidator, self).__call__(u'@'.join(parts)) else: raiseemail_re = re.compile( r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" # dot-atom r'|^"([ 01- 10 13 14 16- 37!#-[]-177]|\[ 01-011 13 14 16-177])*"' # quoted-string r')@(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?.)+[A-Z]{2,6}.?$', re.IGNORECASE) # domainvalidate_email = EmailValidator(email_re, _(u'Enter a valid e-mail address.'), 'invalid')因此,如果你不想使用表单和表单字段,则可以
email_re在函数中导入
validate_email和使用它,甚至更好地导入和使用它,以获取可能
ValidationError。
def validateEmail( email ): from django.core.validators import validate_email from django.core.exceptions import ValidationError try: validate_email( email ) return True except ValidationError: return False



