88 lines
1.6 KiB
Go
88 lines
1.6 KiB
Go
package validationUtil
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"goutil/stringUtil"
|
|
)
|
|
|
|
const (
|
|
MaxInt32 int = 0x7fffffff
|
|
MinInt32 int = -0x7fffffff
|
|
)
|
|
|
|
// 检查数值范围
|
|
// errList:错误列表
|
|
// val:待检查的值
|
|
// min:最小值
|
|
// max:最大值
|
|
// msg:错误提示
|
|
// 返回值:
|
|
// bool:是否在范围内
|
|
func CheckIntRange(errList *([]error), val int, min int, max int, msg string) bool {
|
|
if val < min || val > max {
|
|
if errList != nil {
|
|
*errList = append(*errList, errors.New(msg))
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
// 检查数值范围
|
|
// errList:错误列表
|
|
// val:待检查的值
|
|
// min:最小值
|
|
// max:最大值
|
|
// msg:错误提示
|
|
// 返回值:
|
|
// bool:是否在范围内
|
|
func CheckFloatRange(errList *([]error), val float64, min float64, max float64, msg string) bool {
|
|
if val < min || val > max {
|
|
if errList != nil {
|
|
*errList = append(*errList, errors.New(msg))
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
// 检查字符串是否为空
|
|
// errList:错误列表
|
|
// val:待检查的值
|
|
// msg:错误提示
|
|
// 返回值:
|
|
// bool:是否在范围内
|
|
func Require(errList *([]error), val string, msg string) bool {
|
|
if stringUtil.IsEmpty(val) {
|
|
if errList != nil {
|
|
*errList = append(*errList, errors.New(msg))
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
// 检查数据是否存在重复项(此函数效率较低,如有效率要求请不要调用此函数)
|
|
func IsDistinct(count int, isEqualFunc func(i, j int) bool) bool {
|
|
for i := 0; i < count; i++ {
|
|
for j := 0; j < count; j++ {
|
|
if i == j {
|
|
continue
|
|
}
|
|
|
|
if isEqualFunc(i, j) {
|
|
return false
|
|
}
|
|
}
|
|
}
|
|
|
|
return true
|
|
}
|