MCPcopy Index your code
hub / github.com/TruthHun/DocHub / execValid

Function execValid

helper/valid.go:160–349  ·  view source on GitHub ↗

数据验证 @param val 字符串 @param rule 验证规则,见Valid()注释 @param args 变参参数 @return 返回验证错误

(val, rule string, args ...string)

Source from the content-addressed store, hash-verified

158//@param args 变参参数
159//@return 返回验证错误
160func execValid(val, rule string, args ...string) error {
161 rule = strings.ToLower(rule)
162 switch rule {
163 //验证邮箱格式
164 case "email":
165 res := valid.Email(val, "email")
166 if !res.Ok || res.Error != nil {
167 return errors.New("邮箱格式不正确")
168 }
169 //验证手机、座机格式
170 case "phone":
171 res := valid.Phone(val, "phone")
172 if !res.Ok || res.Error != nil {
173 return errors.New("联系电话格式不正确")
174 }
175 //验证手机号码
176 case "mobile":
177 res := valid.Phone(val, "mobile")
178 if !res.Ok || res.Error != nil {
179 return errors.New("手机号码格式不正确")
180 }
181 //验证座机号码
182 case "tel":
183 res := valid.Phone(val, "tel")
184 if !res.Ok || res.Error != nil {
185 return errors.New("座机号码格式不正确")
186 }
187 //字符长度校验
188 case "len", "count":
189 if len(args) > 0 {
190 num, _ := strconv.ParseInt(args[0], 10, 64)
191 if rule == "count" {
192 if strings.Count(val, "")-1 != int(num) {
193 return errors.New(fmt.Sprintf("字符个数限制在%v个字符", num))
194 }
195 } else {
196 if len(val) != int(num) {
197 return errors.New(fmt.Sprintf("字符个数限制在%v个字符", num))
198 }
199 }
200 }
201 //最大最小值校验
202 case "min", "max":
203 if len(args) > 0 {
204 num, _ := strconv.ParseFloat(args[0], 64)
205 parseVal, _ := strconv.ParseFloat(val, 64)
206 if rule == "min" {
207 if parseVal < num {
208 return errors.New(fmt.Sprintf("最小值不能小于%v", num))
209 }
210 } else {
211 if parseVal > num {
212 return errors.New(fmt.Sprintf("最大值不能大于%v", num))
213 }
214 }
215 }
216 case "gt":
217 if len(args) > 0 {

Callers 2

TestValidFunction · 0.85
ValidFunction · 0.85

Calls 1

CountMethod · 0.80

Tested by 1

TestValidFunction · 0.68