mirror of
https://github.com/unti-io/go-utils.git
synced 2025-10-25 00:50:20 +08:00
v1.0.0
This commit is contained in:
134
utils/app.go
134
utils/app.go
@@ -3,70 +3,72 @@ package utils
|
||||
import "net/url"
|
||||
|
||||
func init() {
|
||||
Is.Ip = IsIp
|
||||
Is.Url = IsUrl
|
||||
Is.Email = IsEmail
|
||||
Is.Phone = IsPhone
|
||||
Is.Mobile = IsMobile
|
||||
Is.Empty = IsEmpty
|
||||
Is.True = IsTrue
|
||||
Is.False = IsFalse
|
||||
Is.Number = IsNumber
|
||||
Is.Float = IsFloat
|
||||
Is.Bool = IsBool
|
||||
Is.Accepted = IsAccepted
|
||||
Is.Date = IsDate
|
||||
Is.Alpha = IsAlpha
|
||||
Is.AlphaNum = IsAlphaNum
|
||||
Is.AlphaDash = IsAlphaDash
|
||||
Is.Chs = IsChs
|
||||
Is.ChsAlpha = IsChsAlpha
|
||||
Is.ChsAlphaNum = IsChsAlphaNum
|
||||
Is.ChsDash = IsChsDash
|
||||
Is.Cntrl = IsCntrl
|
||||
Is.Graph = IsGraph
|
||||
Is.Lower = IsLower
|
||||
Is.Upper = IsUpper
|
||||
Is.Space = IsSpace
|
||||
Is.Xdigit = IsXdigit
|
||||
Is.ActiveUrl = IsActiveUrl
|
||||
Is.Domain = IsDomain
|
||||
Is.IdCard = IsIdCard
|
||||
Is.MacAddr = IsMacAddr
|
||||
Is.Zip = IsZip
|
||||
Is.String = IsString
|
||||
Is.Slice = IsSlice
|
||||
Is.Array = IsArray
|
||||
Is.JsonString = IsJsonString
|
||||
Is.Map = IsMap
|
||||
Is.SliceSlice = IsSliceSlice
|
||||
Is.MapAny = IsMapAny
|
||||
Get.Type = GetType
|
||||
Get.Ip = GetIp
|
||||
In.Array = InArray[any]
|
||||
Array.Filter = ArrayFilter
|
||||
Array.Remove = ArrayRemove
|
||||
Password.Create = PasswordCreate
|
||||
Password.Verify = PasswordVerify
|
||||
Rand.Int = RandInt
|
||||
Rand.String = RandString
|
||||
Struct.Set = StructSet
|
||||
Struct.Get = StructGet
|
||||
Struct.Del = StructDel
|
||||
Struct.Has = StructHas
|
||||
Struct.Keys = StructKeys
|
||||
Struct.Values = StructValues
|
||||
Struct.Len = StructLen
|
||||
Struct.Map = StructMap
|
||||
Struct.Slice = StructSlice
|
||||
Json.Encode = JsonEncode
|
||||
Json.Decode = JsonDecode
|
||||
Json.Get = JsonGet
|
||||
Format.Query = FormatQuery
|
||||
Parse.ParamsBefore = ParseParamsBefore
|
||||
Parse.Params = ParseParams
|
||||
Net.Tcping = NetTcping
|
||||
Mime.Type = MimeType
|
||||
Is.Ip = IsIp
|
||||
Is.Url = IsUrl
|
||||
Is.Email = IsEmail
|
||||
Is.Phone = IsPhone
|
||||
Is.Mobile = IsMobile
|
||||
Is.Empty = IsEmpty
|
||||
Is.True = IsTrue
|
||||
Is.False = IsFalse
|
||||
Is.Number = IsNumber
|
||||
Is.Float = IsFloat
|
||||
Is.Bool = IsBool
|
||||
Is.Accepted = IsAccepted
|
||||
Is.Date = IsDate
|
||||
Is.Alpha = IsAlpha
|
||||
Is.AlphaNum = IsAlphaNum
|
||||
Is.AlphaDash = IsAlphaDash
|
||||
Is.Chs = IsChs
|
||||
Is.ChsAlpha = IsChsAlpha
|
||||
Is.ChsAlphaNum = IsChsAlphaNum
|
||||
Is.ChsDash = IsChsDash
|
||||
Is.Cntrl = IsCntrl
|
||||
Is.Graph = IsGraph
|
||||
Is.Lower = IsLower
|
||||
Is.Upper = IsUpper
|
||||
Is.Space = IsSpace
|
||||
Is.Xdigit = IsXdigit
|
||||
Is.ActiveUrl = IsActiveUrl
|
||||
Is.Domain = IsDomain
|
||||
Is.IdCard = IsIdCard
|
||||
Is.MacAddr = IsMacAddr
|
||||
Is.Zip = IsZip
|
||||
Is.String = IsString
|
||||
Is.Slice = IsSlice
|
||||
Is.Array = IsArray
|
||||
Is.JsonString = IsJsonString
|
||||
Is.Map = IsMap
|
||||
Is.SliceSlice = IsSliceSlice
|
||||
Is.MapAny = IsMapAny
|
||||
Get.Type = GetType
|
||||
Get.Ip = GetIp
|
||||
In.Array = InArray[any]
|
||||
Array.Filter = ArrayFilter
|
||||
Array.Remove = ArrayRemove
|
||||
Array.Unique = ArrayUnique[any]
|
||||
Array.Empty = ArrayEmpty[any]
|
||||
Password.Create = PasswordCreate
|
||||
Password.Verify = PasswordVerify
|
||||
Rand.Int = RandInt
|
||||
Rand.String = RandString
|
||||
Struct.Set = StructSet
|
||||
Struct.Get = StructGet
|
||||
Struct.Del = StructDel
|
||||
Struct.Has = StructHas
|
||||
Struct.Keys = StructKeys
|
||||
Struct.Values = StructValues
|
||||
Struct.Len = StructLen
|
||||
Struct.Map = StructMap
|
||||
Struct.Slice = StructSlice
|
||||
Json.Encode = JsonEncode
|
||||
Json.Decode = JsonDecode
|
||||
Json.Get = JsonGet
|
||||
Format.Query = FormatQuery
|
||||
Parse.ParamsBefore = ParseParamsBefore
|
||||
Parse.Params = ParseParams
|
||||
Net.Tcping = NetTcping
|
||||
Mime.Type = MimeType
|
||||
}
|
||||
|
||||
var Is struct {
|
||||
@@ -123,6 +125,8 @@ var In struct {
|
||||
var Array struct {
|
||||
Filter func(array []string) (slice []string)
|
||||
Remove func(array []string, args ...string) (slice []string)
|
||||
Unique func(array []any) (slice []any)
|
||||
Empty func(array []any) (slice []any)
|
||||
}
|
||||
|
||||
var Password struct {
|
||||
@@ -168,4 +172,4 @@ var Net struct {
|
||||
|
||||
var Mime struct {
|
||||
Type func(suffix any) (mime string)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,3 +29,25 @@ func ArrayRemove(array []string, args ...string) []string {
|
||||
}
|
||||
return array
|
||||
}
|
||||
|
||||
// ArrayUnique - 数组去重
|
||||
func ArrayUnique[T any](array []T) (slice []any) {
|
||||
list := make(map[any]bool)
|
||||
for _, item := range array {
|
||||
if !list[item] {
|
||||
list[item] = true
|
||||
slice = append(slice, item)
|
||||
}
|
||||
}
|
||||
return slice
|
||||
}
|
||||
|
||||
// ArrayEmpty - 数组去空
|
||||
func ArrayEmpty[T any](array []T) (slice []any) {
|
||||
for _, item := range array {
|
||||
if !IsEmpty(item) {
|
||||
slice = append(slice, item)
|
||||
}
|
||||
}
|
||||
return slice
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@ func ParseParams(params map[string]any) (result map[string]any) {
|
||||
params[keys[0]] = make(map[string]any, 3)
|
||||
}
|
||||
wg.Add(1)
|
||||
go worker(params[keys[0]].(map[string]any), strings.Join(keys[1:], "."), val)
|
||||
go worker(cast.ToStringMap(params[keys[0]]), strings.Join(keys[1:], "."), val)
|
||||
}
|
||||
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user