github.com/gogf/gf@v1.16.9/util/gvalid/gvalid_validator_rule_range.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/gogf/gf. 6 7 package gvalid 8 9 import ( 10 "strconv" 11 "strings" 12 ) 13 14 // checkRange checks `value` using range rules. 15 func (v *Validator) checkRange(value, ruleKey, ruleVal string, customMsgMap map[string]string) string { 16 msg := "" 17 switch ruleKey { 18 // Value range. 19 case "between": 20 array := strings.Split(ruleVal, ",") 21 min := float64(0) 22 max := float64(0) 23 if len(array) > 0 { 24 if v, err := strconv.ParseFloat(strings.TrimSpace(array[0]), 10); err == nil { 25 min = v 26 } 27 } 28 if len(array) > 1 { 29 if v, err := strconv.ParseFloat(strings.TrimSpace(array[1]), 10); err == nil { 30 max = v 31 } 32 } 33 valueF, err := strconv.ParseFloat(value, 10) 34 if valueF < min || valueF > max || err != nil { 35 msg = v.getErrorMessageByRule(ruleKey, customMsgMap) 36 msg = strings.Replace(msg, ":min", strconv.FormatFloat(min, 'f', -1, 64), -1) 37 msg = strings.Replace(msg, ":max", strconv.FormatFloat(max, 'f', -1, 64), -1) 38 } 39 40 // Min value. 41 case "min": 42 var ( 43 min, err1 = strconv.ParseFloat(ruleVal, 10) 44 valueN, err2 = strconv.ParseFloat(value, 10) 45 ) 46 if valueN < min || err1 != nil || err2 != nil { 47 msg = v.getErrorMessageByRule(ruleKey, customMsgMap) 48 msg = strings.Replace(msg, ":min", strconv.FormatFloat(min, 'f', -1, 64), -1) 49 } 50 51 // Max value. 52 case "max": 53 var ( 54 max, err1 = strconv.ParseFloat(ruleVal, 10) 55 valueN, err2 = strconv.ParseFloat(value, 10) 56 ) 57 if valueN > max || err1 != nil || err2 != nil { 58 msg = v.getErrorMessageByRule(ruleKey, customMsgMap) 59 msg = strings.Replace(msg, ":max", strconv.FormatFloat(max, 'f', -1, 64), -1) 60 } 61 62 } 63 return msg 64 }