diff --git a/django/core/validators.py b/django/core/validators.py index c92d86e1d6..7e6f426278 100644 --- a/django/core/validators.py +++ b/django/core/validators.py @@ -333,6 +333,19 @@ class HasAllowableSize: if self.max_size is not None and len(field_data['content']) > self.max_size: raise ValidationError, self.max_error_message +class MatchesRegularExpression: + """ + Checks that the field matches the given regular-expression. The regex + should be in string format, not already compiled. + """ + def __init__(self, regexp, error_message="The format for this field is wrong."): + self.regexp = re.compile(regexp) + self.error_message = error_message + + def __call__(self, field_data, all_data): + if not self.regexp.match(field_data): + raise validators.ValidationError(self.error_message) + class URLMimeTypeCheck: "Checks that the provided URL points to a document with a listed mime type" class CouldNotRetrieve(ValidationError):