diff --git a/validator.go b/validator.go index 60bdc47..6692bfb 100644 --- a/validator.go +++ b/validator.go @@ -22,6 +22,19 @@ func (vr *ValidatorRule) MarshalJSON() ([]byte, error) { return []byte(vr.String()), nil } +// IsValid 验证规则是否有效 +func (vr *ValidatorRule) IsValid() bool { + _, exist := ValidatorRuleSupportDataTypeTable[*vr] + if !exist { + return false + } + rule := ValidatorRuleSupportDataTypeTable[*vr].ValidatorRule + if vr.String() != (&rule).String() { + return false + } + return exist +} + // Config 验证规则的配置 // // Author : go_developer@163.com<白茶清欢> @@ -538,3 +551,12 @@ var ( ValidatorRuleFormatterLowercase ValidatorRule = "lowercase" // 仅包含小写字符 ValidatorRuleFormatterUppercase ValidatorRule = "uppercase" // 仅包含大写字符 ) + +// RegisterCustomValidatorRule 注册自定义的验证方法, 允许通过此函数, 覆盖内部默认的配置 +// +// Author : go_developer@163.com<白茶清欢> +// +// Date : 18:35 2025/1/24 +func RegisterCustomValidatorRule(rule ValidatorRule, validatorRuleConfig ValidatorRuleConfig) { + ValidatorRuleSupportDataTypeTable[rule] = validatorRuleConfig +}