Documentation
¶
Overview ¶
+build go1.18 字符串相关函数集合工具库,支持各种字符串相关的函数,包括字符串转换,字符串处理,字符串判断等. 泛型的字符串相关转换函数 这里仅支持go版本大于等于1.18的go运行环境,因为只有go版本大于等于1.18才支持泛型 @author: [email protected] @see https://dev.tekin.cn
JSON 相关工具函数 ¶
naming conventions utils 命名转换相关实用函数 @author [email protected]
path路径相关工具函数
Index ¶
- func AbsPathify(inPath string) string
- func AnyIsBlank(val interface{}) bool
- func AnyToStr(value interface{}) string
- func AppendFile(fname string, data []byte) error
- func CamelStr(str string) string
- func Capitalize(s string) string
- func CaseCamel(str string) string
- func CaseCamelLower(str string) string
- func Contains(haystack, needle string, startOffset ...int) int
- func ContainsAny(s string, runes ...rune) bool
- func ContainsWhiteSpace(s string) bool
- func ConvertWrodsFirstUpperLower(s, sep string, isUpper bool) string
- func DirMustExist(path string, perms ...fs.FileMode) error
- func GbkToUtf8(s []byte) ([]byte, error)
- func GenRandIntStr(width uint) string
- func GenRandStr(width uint) string
- func GetAppPath() string
- func GetDirSize(fname string) int64
- func GetFileEnvStr(filename string) (string, error)
- func GetFileExt(fname string) string
- func GetFileMime(fname string, fast bool) string
- func GetFileMode(fname string) (os.FileMode, error)
- func GetFileSize(fname string) int64
- func GetRegexp(pattern string) (*regexp.Regexp, error)
- func GetRemoteFileSize(furl string) (int64, error)
- func GetUuid() string
- func Html2str(htmlStr string) string
- func Index(slice []string, item string) int
- func IsASCII(str string) bool
- func IsBase64Str(str string) bool
- func IsBinaryFile(fname string) bool
- func IsDir(fname string) bool
- func IsEmptyDir(path string) bool
- func IsEmptyStringOrWhiteSpace(s string) bool
- func IsExist(path string) int8
- func IsFile(fname string) bool
- func IsGbkData(data []byte) bool
- func IsGbkStr(str string) bool
- func IsImg(fname string) bool
- func IsLink(fpath string) bool
- func IsUrl(str string) bool
- func IsValidUrl(urlStr string, schemes ...string) bool
- func IsWmMatching(str string, pattern string) bool
- func IsWmMatchingReg(str, pattern string) bool
- func JsonDataScan(data []byte, dest interface{}) error
- func JsonStrToStruct(m string, dst interface{}) error
- func JudgeBase64(str string) bool
- func KebabStr(str string) string
- func LcFirst(str string) string
- func NumberFormat(number float64, decimal uint8, point, thousand string) string
- func ParseNumberStr(str string) string
- func ParseStrsToMapStrStrSlice(strs []string, options ...string) map[string][]string
- func ReplaceString(pattern, replace, src string) (string, error)
- func ReverseStr(str string) string
- func ReverseStrTpl(temp, str string, res map[string]interface{})
- func SafeString(in string) string
- func SmallCamelStr(str string) string
- func SnakeStr(str string) string
- func Str2Float32(str string) float32
- func Str2Float64(str string) float64
- func Str2Int(str string) int
- func Str2Int64(str string) int64
- func Str2Int64Slice(str string, seps ...string) []int64
- func Str2IntSlice(str string, seps ...string) []int
- func Str2Uint(str string) uint
- func Str2Uint64(str string) uint64
- func Str2UintSlice(str string, seps ...string) []uint
- func StrContainsChinese(str string) bool
- func StrContainsContinuousNum(str string, minCs ...uint16) bool
- func StrGbkToUtf8(str string) (string, error)
- func StrInSlice(a string, list []string) bool
- func StrIndex(str, substr string) int
- func StrIsChinese(str string) bool
- func StrIsNumber(str string) bool
- func StrSplitAndTrim(str, sep string, cutsets ...string) []string
- func StrToFloat64(str string) float64
- func StrToInt(str string) int
- func StrToInt64(str string) int64
- func StrToNumber[T iNumber](str string, defVal T) T
- func StrToUint(str string) uint
- func StrToUint64(str string) uint64
- func StrUtf8ToGbk(str string) (string, error)
- func Substr(str string, start int, lengths ...int) string
- func Substr2(str string, start int, length ...int) string
- func TimeToStr(tval interface{}, layouts ...string) string
- func Title(s string) string
- func TrimAppPath(inPath string) string
- func TrimWhiteSpace(s string) string
- func TsToStr(ts int64, layout string) string
- func UcFirst(str string) string
- func UcWords(str string) string
- func UnTitle(s string) string
- func Utf8ToGbk(s []byte) ([]byte, error)
- func WriteFile(fname string, data []byte, perms ...os.FileMode) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AbsPathify ¶ added in v1.3.0
获取inPath的绝对路径 会替换路径中的变量 ${var} 或者 $var 为环境变量的值
func AnyIsBlank ¶ added in v1.3.0
func AnyIsBlank(val interface{}) bool
使用放射判断 val是否为空(零值) 可判断 val 对象是否为零值, 包含时间类型对象的零值 是零值返回 true 否则返回 false; 空字符串,number类型 0 , 引用类型 nil,时间类型空值 都返回true @author tekintian <[email protected]>
func AnyToStr ¶
func AnyToStr(value interface{}) string
AnyToStr 返回any类型的数据的字符串 nil数据返回空字符串, 数组,切片 返回以空格分隔的值, map类型的数据返回以空格分隔的 k:v , 如果value是Time对象,则默认使用 time.RFC3339 格式化时间返回 实现了Stringer接口的结构体调用 String返回字符串, 字符串类型的直接返回字符串 其他类型全部使用 fmt.Sprintf("%v",value) 返回字符串
func AppendFile ¶ added in v1.3.0
AppendFile 插入文件内容.若文件不存在,则自动创建.
func Capitalize ¶
将字符串s中所有单词的第一个字母转换为大写 @author tekintian <[email protected]>
func ContainsAny ¶
字符串包含检查 runes 这个为你要检查的字符串rune 可以是多个,只要有一个包含即返回true
func ConvertWrodsFirstUpperLower ¶
转换字符串中单词的首字母大小写
s 待转换的字符串
sep 单词分隔符 如果指定了分隔符且不为空同时字符串中包含指定分隔符,则返回的字符串中的单词将会带上这个分隔符,否则分隔符全部会被设置为空
isUpper 是否转换为大写 true 是, false 否(转换为小写)
使用示例:
ConvertWrodsFirstUpperLower("hello word","",true) // HelloWorld
ConvertWrodsFirstUpperLower("Hello Word"," ",false) // hello world
返回转换后的字符串
func DirMustExist ¶ added in v1.3.0
确保给定的路径的目录存在,如果不存在则自动创建对应目录 默认目录权限标识 0777
path 要判断是否存在的路径 perms 目录权限标识 默认 0777可任意读写, 可自行指定 如 0755, 0666等
如果目录创建失败在返回相关的异常信息,否则返回nil
func GetFileEnvStr ¶ added in v1.3.0
获取文件内容数据并将文件内容中的变量替换为环境变量 filename 要读取的文件路径,相对于当前项目根目录的相对路径 或者绝对路径 返回使用os.ExpandEnv将文件内容中的变量替换为环境变量的值后返回
func GetFileExt ¶ added in v1.3.0
GetExt 获取文件的小写扩展名,不包括点. 如: fname为 xxxx.jpg 则返回 jpg
func GetFileMime ¶ added in v1.3.0
GetMime 获取文件mime类型;fast为true时根据后缀快速获取;为false时读取文件头获取.
func GetFileMode ¶ added in v1.3.0
GetFileMode 获取路径的权限模式.
func GetFileSize ¶ added in v1.3.0
GetFileSize 获取文件大小(bytes字节);注意:文件不存在或无法访问时返回-1 .
func GetRemoteFileSize ¶ added in v1.3.0
获取远程要下载的文件的大小
func Html2str ¶
Html过滤 过滤所有script,style内容, 其他所有<*>中的内容, 将1个以上的换行回车空格替换为1个空格 @author: tekintian <[email protected]>
func IsBinaryFile ¶ added in v1.3.0
IsBinaryFile 是否二进制文件(且存在) fname 要判断的文件名 包含路径 是二进制文件 返回 true , 否则返回false @author tekintian <[email protected]>
func IsExist ¶ added in v1.3.0
判断给定的文件/路径是否存在 返回数字 0 表示不存在; 1 目录存在; 2 文件存在; -1 表示path为空
path 要检测是否存在的路径 文件夹或者文件路径, 如果路径为空返回 -1
func IsWmMatching ¶ added in v1.2.0
通配符 * 问号 ? 匹配, 找出给定的输入字符串str是否与pattern字符串模式相匹配。
IsWmMatching wildcard and mask pattern matching str 要进行匹配的输入字符串 pattern 字符串匹配模式 通配符 星号'*' -> 星号匹配零个或多个字符。 问号'?' -> 匹配任何单个字符。
如果str与pattern相匹配,则返回true, 否则返回false
func IsWmMatchingReg ¶ added in v1.2.0
星号模式匹配* 和问号模式匹配 ,将模式匹配字符串转换为正则后使用正则进行匹配 这个的作用和上面的IsWmMatching 是一样的, 只不过这个函数采用的是正则方式进行模式匹配
func JsonDataScan ¶ added in v1.3.0
利用JSON decoder扫描data数据到 dest 注意这里的 data是JSON字符串的[]byte切片 dest 是用来接收json data的指针对象, 可以是map 或者自定义结构体, 注意json中字段的类型需要和接收对象的字段的数据类型一致, 除非是interface{} 另外这里json解码后会将int64类型数据转换为json number类型 而不是默认的 float64类型.
func JsonStrToStruct ¶
JsonStrToStruct 反序列化字符串并赋值给对应结构体
func JudgeBase64 ¶
判断字符串是否是base64字符 可准确判断是或者否 纯数字被视为非base64字符
Base64规定: 4 个 Base64 字符表示 3 个二进制字节,因为:64 * 64 * 64 * 64 = 256 * 256 * 256。 因为,Base64 将三个字节转化成四个字节,因此 Base64 编码后的文本,会比原文本大出三分之一左右。 Base64共有65个字符,他们分别是: 大写字母 A-Z、小写字母 a-z、数字 0-9、符号 "+"、"/"(再加上作为垫字的 "=", 垫字是当生成的 Base64 字符串的个数不是 4 的倍数时,添加在尾部的字符),作为一个基本字符集。然后,其他所有符号都转换成这个字符集中的字符。 @author: TekinTian <[email protected]> @see https://dev.tekin.cn/
func NumberFormat ¶ added in v1.2.0
NumberFormat 以千位分隔符方式格式化一个数字. decimal为要保留的小数位数,point为小数点显示的字符,thousand为千位分隔符显示的字符. 有效数值是长度(包括小数点)为17位之内的数值,最后一位会四舍五入.
func ParseNumberStr ¶
使用正则从字符串中解析数字, 支持小数和使用了,分隔的数字的匹配 如 123,456 获取的结果为 123456; abc12.88def 返回 12.88
func ParseStrsToMapStrStrSlice ¶ added in v1.3.0
解析字符串切片 到 map[string][]string 这个的应用场景通常是对权限验证字符串进行切割和转换
strs 要进行切割转换的字符串切片 , 如: []string{"/api/login:GET,POST"}
options 字符串切割可选项,可以传3个可选项参数:
第一个是字符串的key和值的分隔符 默认 分号 :
第二个是第一个分割后的值的分隔符, 默认 逗号 ,
第二个是分割后的key/val值的trim 字符, 默认 空格
返回 map[string][]string 如: mps["/api/login"]=[]string{"GET","POST"}
@author tekintian <[email protected]>
func ReverseStr ¶
反转字符串 支持所有字符串的反转 中英文符号等都支持
str 要进行反转的字符串
返回反转后的字符串 @author: TekinTian <[email protected]>
func SafeString ¶
转换字符串为go语言中安全的命名样式, 即英文字母或者数字与 _ 组合,不能以数字开头 SafeString会将所有的非字母或者数字全部转换为_ 如果是数字开头则转换为_数字, 如123abc 转换为 _123abc
func Str2Int64Slice ¶
字符串转int64切片 str 要转换的字符串 如: "123,456" seps 可选参数, 字符串中的切割分隔符,默认 逗号, 可以自行根据要切割转换的字符串指定 返回按照指定的sep分隔符切割转换后的 int64切片
func Str2IntSlice ¶
字符串转int切片 str 要转换的字符串 如: "123,456" seps 可选参数, 字符串中的切割分隔符,默认 逗号, 可以自行根据要切割转换的字符串指定 返回按照指定的sep分隔符切割转换后的 int切片
func Str2UintSlice ¶
字符串转uint切片 str 要转换的字符串 如: "123,456" seps 可选参数, 字符串中的切割分隔符,默认 逗号, 可以自行根据要切割转换的字符串指定 返回按照指定的sep分隔符切割转换后的 uint切片
func StrContainsContinuousNum ¶
判断字符串是否包含连续的数字, minCs 最小连续数字的长度,默认 2
func StrSplitAndTrim ¶
切割并清理字符串, 返回非空的字符串切片
str 要处理的字符串 sep 房子付出的分隔符 cutsets 可选参数 要清理的字符串 默认 空格
返回切割后非空的字符串切片
func StrToNumber ¶
func StrToNumber[T iNumber](str string, defVal T) T
泛型字符串转数字, 返回的类型为defVal对应的类型,如果转换失败,则返回默认值 支持将字符串转换为go中所有的intx,uintx,floatx的数字类型
func Substr ¶
截取指定长度的字符串 支持中文截取
start 开始截取的字符索引位置,从0开始
lengths 要截取的字符长度 可选参数, 默认从开始位置一直截取到字符串的末尾
如: Substr("你好go语言!",2,4) 返回 "go语言"
Substr("Hello world",6,5) 返回 "world"
返回截取后的字符串
func Substr2 ¶
Substr2 字符串截取 返回截取后的字符串 支持多字节字符 start 为起始位置.若值是负数,返回的结果将从 str 结尾处向前数第 abs(start) 个字符开始. length 为截取的长度.若值时负数, str 末尾处的 abs(length) 个字符将会被省略. start/length的绝对值必须<=原字符串长度.
func TimeToStr ¶
TimeToStr 转换 时间字符串/时间戳/时间对象 到字符串 tval 要转换的时间对象, 时间戳(支持秒和毫秒), 时间字符串(注意,如果时间格式非默认的格式,需要指定时间格式) layouts 可选的时间格式
默认输出字符串格式 "2006-01-02T15:04:05Z07:00", 默认tval字符串对应的时间格式 "2006-01-02 15:04:05" layouts可以传递多个时间格式参数, 第一个为最终返回的字符串格式,默认"2006-01-02T15:04:05Z07:00" 第二个为源格式(tval字符串对应的时间格式),默认"2006-01-02 15:04:05",仅tval为字符串时有效, 还会自动尝试格式 time.RFC3339, 2006年01月02日15:04:05
时间字符串 @author tekintian <[email protected]> @see https://dev.tekin.cn
func TrimAppPath ¶ added in v1.3.0
去除当前app的路径(如果包含)返回相对路径, 否则原样返回
func TrimWhiteSpace ¶
去除字符串中的空白字符包含 回车 换行 制表符等, 注意是字符串中的所有的空白符全部去除
func TsToStr ¶ added in v1.1.0
格式化时间戳到字符串 ts 时间戳 支持秒 10位, 毫秒 13位 layout 时间格式 如果为空,则默认使用 time.RFC3339 作为格式 "2006-01-02T15:04:05Z07:00" 格式后的时间字符串
Types ¶
This section is empty.