Validate
        Perform value validation and return result

        :param value:           value to check
        :param model:           parent model being validated
        :param context:         object or None, validation context
        :return:                shiftschema.results.SimpleResult

def validate(self, value, model=None, context=None):
        """
        Validate
        Perform value validation and return result

        :param value:           value to check
        :param model:           parent model being validated
        :param context:         object or None, validation context
        :return:                shiftschema.results.SimpleResult
        """
        value = str(value)
        regex = self.regex(
            protocols=self.protocols,
            localhost=self.localhost
        )

        regex = re.compile(regex, flags=self.flags)
        match = regex.match(value)

        # return error
        if not match:
            return Error(self.url_invalid)

        # success otherwise
        return Error()