Documentation ¶
Overview ¶
xstring包
Index ¶
- Constants
- Variables
- func AString(c any) string
- func Aes(src, key []byte) ([]byte, error)
- func Any2Float(a any) float64
- func Any2Int(a any) int
- func Any2Int16(a any) int16
- func Any2Int32(a any) int32
- func Any2Int8(a any) int8
- func Any2Integer(a any) int64
- func Any2Jsons(param [][]byte, obj any) error
- func Any2UInt(a any) uint
- func Any2Uint16(a any) uint16
- func Any2Uint32(a any) uint32
- func Any2Uint64(a any) uint64
- func Any2Uint8(a any) uint8
- func Any2any(old, new any) error
- func Any2ype(a any) uint8
- func B2Int(s string) (num int64)
- func BankCard(t string) string
- func BankCardFormat(t string) string
- func Base64(p string) string
- func Base64Raw(p string) string
- func BaseByte64(p []byte) string
- func BaseByte64Raw(p []byte) string
- func CamelCase(str string) string
- func CardNo(t string) string
- func CardNoFormat(t string) string
- func CheckCardNo(c string) bool
- func CheckDate(c string) bool
- func CheckDateTime(c string) bool
- func CheckDomain(c string) bool
- func CheckEmail(c string) bool
- func CheckFloat(c string) bool
- func CheckIpv4(c string) bool
- func CheckIpv6(c string) bool
- func CheckNumber(c string) bool
- func CheckPassword(c string, num, a, A, f bool) bool
- func CheckPhone(c string, fix bool) bool
- func CheckRep(c, rep string) bool
- func CheckTel(c string) bool
- func CheckTime(c string) bool
- func CheckUrl(c string) bool
- func CheckUsername(c string) bool
- func CheckVersion(min, now string) bool
- func DerviceId(name ...string) (string, error)
- func Des(src, key []byte) ([]byte, error)
- func EmojiDecode(s string) string
- func EmojiEncode(s string) string
- func Format(number, format string) string
- func Gz(str []byte) ([]byte, error)
- func HasContains(str string) bool
- func HasContainsQuest(str string) bool
- func HasEmoji(str string) bool
- func HasLetter(str string) bool
- func HasLetterLower(str string) bool
- func HasLetterUp(str string) bool
- func HasNumber(str string) bool
- func HasPunct(str string) bool
- func HasSpace(str string) bool
- func Hex2Bin(str string) []byte
- func HtmlTrim(src string) string
- func IsInteger(a float64) bool
- func J2jMap(in, out any, mps map[string]string, ret bool) error
- func JFloat32(c json.Number) float32
- func JFloat64(c json.Number) float64
- func JInt(c json.Number) int
- func JInt16(c json.Number) int16
- func JInt64(c json.Number) int64
- func JInt8(c json.Number) int8
- func JUint(c json.Number) uint
- func JUint16(c json.Number) uint16
- func JUint64(c json.Number) uint64
- func JUint8(c json.Number) uint8
- func Jp2j(jsonp string) string
- func Jwt(key []byte, payloadData any) (string, error)
- func MD5(text string) string
- func MD5Byte(data []byte) string
- func MD5File(file string) string
- func Mac() map[string]string
- func Name(rols string, param ...map[string]string) string
- func Pad(input string, padLength int, padString string, padType int) string
- func ParseSizes(str string) int64
- func ParseTimeDurations(str string) time.Duration
- func Phone(t string) string
- func PhoneFormat(t string) string
- func Random(l int, arg ...string) string
- func RandomNo(cp string, l int) string
- func RandomPass(l int, num, up, dow, sym bool) string
- func Regedit(c *Config)
- func SHA1(text string) string
- func SHA1Byte(data []byte) string
- func SHA1File(file string) string
- func SplitFloat32(s, sep string) []float32
- func SplitFloat64(s, sep string) []float64
- func SplitInt(s, sep string) []int
- func SplitInt16(s, sep string) []int16
- func SplitInt32(s, sep string) []int32
- func SplitInt64(s, sep string) []int64
- func SplitInt8(s, sep string) []int8
- func SplitUint(s, sep string) []uint
- func SplitUint16(s, sep string) []uint16
- func SplitUint32(s, sep string) []uint32
- func SplitUint64(s, sep string) []uint64
- func SplitUint8(s, sep string) []uint8
- func TimeDateAge(str1 string) (uint, error)
- func TimeDateDiff(str1, str2 string) (time.Duration, error)
- func TimeDiff(str1, str2 string) (time.Duration, error)
- func ToDayInt(t time.Time) int
- func ToFloat32(s string) float32
- func ToFloat64(s string) float64
- func ToInt(s string) int
- func ToInt16(s string) int16
- func ToInt32(s string) int32
- func ToInt64(s string) int64
- func ToInt8(s string) int8
- func ToTime(date string) time.Time
- func ToUint(s string) uint
- func ToUint16(s string) uint16
- func ToUint32(s string) uint32
- func ToUint64(s string) uint64
- func ToUint8(s string) uint8
- func UUID() string
- func UnAes(src, key []byte) ([]byte, error)
- func UnBase64(p string) string
- func UnBase64Byte(p string) []byte
- func UnBase64Raw(p string) string
- func UnBase64RawByte(p string) []byte
- func UnDes(src, key []byte) ([]byte, error)
- func UnGz(str []byte) ([]byte, error)
- func UnJwt(key []byte, token string, stu any) error
- func UnJwtNoKey(token string, stu any) error
- func Url(base, target string) string
- func UrlFormat(uri string) string
- type Config
- type SplitUnits
- type UaInfo
Constants ¶
const ( // 将字符串填充到左侧 PAD_LEFT = 1 // 将字符串填充到右侧 PAD_RIGHT = 2 )
字符串填充位置
Variables ¶
var WeekList = map[uint8]string{
0: "日",
1: "一",
2: "二",
3: "三",
4: "四",
5: "五",
6: "六",
}
周uint定位
Functions ¶
func Any2Float ¶ added in v0.2.21
任意类型断言成浮点型 PS: 会将整形变量也改变类型成浮点型,建议先确定好类型再行确定是否使用 经测试,类型断言的效率要比反射稍高,所以此处使用类型断言进行any类型转换
a 任意类型变量值
func Any2Integer ¶ added in v0.2.21
任意类型断言成整形 PS: 浮点数会舍弃精度转换,所以建议先确定好不是浮点数、字符串等类型以后再进行转换 经测试,类型断言的效率要比反射稍高,所以此处使用类型断言进行any类型转换
a 任意类型变量值
func Any2Jsons ¶ added in v0.3.24
将多个文件/字符串的json配置项合并成单个配置项文件 注:后面的json会覆盖掉之前的json串 注2:此方法会在json和[]byte之间来回转换多次,效率上会很慢,所以使用时请尽量将结果缓存,以免不必要的浪费
param 多组待拼合的字节数据 obj 转换出的结果信息【指针类型】
func Any2any ¶ added in v0.2.1
结构体转换【通过json进行转换,所以建立结构体时请注意json对应】
old 待转换的变量类型 new 转换后的变量存储位置【此值需要为指针】
func Any2ype ¶ added in v0.2.21
断言任意变量的类型
a 任意类型变量
returns: 0~99, 0~9为大类,若仅需要判断大类的话可直接使用 <return> % 10 10~99为子分类,如:1为整形 31为字符串类型的整形 21为浮点类型的整形,若需要获取显示类型可使用 <return> == 3 || <return> / 10 == 3 来进行获取
0 未知类型 1 整形 11 布尔类型(因此值可视为特殊类型整形,所以归类到整形中) 2 浮点型 3 字符串型 31 字符串类型的整形 32 字符串类型的浮点型 4 json.Number类型 5 time.Time类型 6 time.Duration类型 7 error类型
func CamelCase ¶ added in v0.1.23
数据库表名转模型名【大驼峰转换】 PS: 此函数会将abc_def的表名转换为AbcDef的大驼峰命名
str 待转换的下划线命名的数据库表名称
func CheckPassword ¶ added in v0.1.21
效验用户输入的规则是否符合密码规则
c 待效验的字符串 num 必须输入数字? a 必须输入小写字母? A 必须输入大写字母? f 必须存在ANSI标识内的符号
func HasContainsQuest ¶
快速检测字符串中是否存在中文 此处采用的为国标码GB18030和国际码Unicode的范围:0x4e00 ~ 0x9fff 0x3400 ~ 0x4dbf 0x20000 ~ 0x2a6df 详细字符集范围见下表: 字符集 字数 Unicode 编码 基本汉字 20902字 4E00-9FA5 基本汉字补充 90字 9FA6-9FFF 扩展A 6592字 3400-4DBF 扩展B 42720字 20000-2A6DF 扩展C 4154字 2A700-2B739 扩展D 222字 2B740-2B81D 扩展E 5762字 2B820-2CEA1 扩展F 7473字 2CEB0-2EBE0 扩展G 4939字 30000-3134A 扩展H 4192字 31350-323AF 康熙部首 214字 2F00-2FD5 部首扩展 115字① 2E80-2EF3 兼容汉字 472字② F900-FAD9 兼容扩展 542字 2F800-2FA1D 汉字笔画 36字 31C0-31E3 汉字结构 12字 2FF0-2FFB 汉语注音 43字 3105-312F 注音扩展 32字 31A0-31BF 〇 1字 3007
str 待检测的字符串
func HasEmoji ¶
判断字符串中是否存在emoji表情【此处使用rune的取值范围来确定是不是emoji表情,中文最大值为0xffff】 此处采用的为国标码GB18030和国际码Unicode中都有收录emoji图形符号 0x2600 ~ 0x27ff 0x1f000 ~ 0x1f6ff
str 待判断的字符串
func J2jMap ¶ added in v0.3.32
JSON映射转化 out.key支持使用函数进行其他处理,使用|进行拼接,所以函数参数中禁止出现 `:` 和 `|`
json - 将 json 字符串转化成 json 对象 date - 将 value 的值转化成 yyyy-mm-dd 格式的日期 time - 将 value 的值转化成 hh:mm:ss 格式的时间 datetime - 将 value 的值转化成 yyyy-mm-dd hh:mm:ss 格式的日期时间 unix - 将 value 的值转化成 UNIX 时间戳 rep - 替换 value 中的字符串的值,使用格式要求为: rep:<查找字符>:<替换字符> spl - 直接根据特定字符串进行分割,使用格式要求为: spl:<切分字符> up - 字符转换为大写 up1 - 字符串首字母大写 low - 字符串转换为小写 int - 转 int64 类型 trim - 去除两侧空格
rep - 高级用法:rep::A_{}_B 在字符串前后分别添加A_和_B({}指原字符串) spl - 高级用法:spl:{} 使用 : 分割字符(使用 {} 替换被占用的:)
in 输入的结构体类型,允许使用[] out 输出的结构体类型,允许使用[] mps 映射字段,格式为:in.key => out.key ret 未加入 mps 的字段是删除还是保留 true-保留 false-舍弃
func Name ¶ added in v0.3.37
根据规则生成名称
rols: 规则字符串,支持变量替换,格式为{{变量名}},变量名为map中的key param: 变量参数,map类型,key为变量名,value为变量值
func Pad ¶
字符串填充到指定长度
input string 原字符串 padLength int 规定补齐后的字符串位数 padString string 自定义填充字符串 padType string 填充类型:PAD_LEFT(向左填充,自动补齐位数), 默认右侧
func ParseSizes ¶ added in v0.3.45
字符串转换为整数文件大小,单位:B
str: 带单位的字符串,如 "1024 KB"、"1G"、"128M"
不支持小数输入,但是支持多单位拼接,如:1KB 1KB20B
func ParseTimeDurations ¶ added in v0.3.45
ParseTimeDurations 解析时间字符串(支持多个时间拼接,如:1h30s),支持以下单位: m, min, minutes h, hour, hours d, day, days w, week, weeks M, month, months y, year, years ms us ns s (默认单位)
str 时间字符串
func RandomNo ¶ added in v0.1.30
生成`年月日时分秒毫秒`的流水号 返回长度:14+len(cp)+l
cp 流水号前缀 l 毫秒位数,3-毫秒 6-微秒 9-纳秒,取值:1~9,不在此范围内则转化为3
func ToTime ¶
时间字符串转为时间 为了便于其他程序处理,v0.2.50之后的版本此处返回值已调整为time.Time进行返回
date 待转换的时间字符串,支持格式为Go官方支持的时间格式【此处使用循环进行批量替换的形式】
Types ¶
type SplitUnits ¶ added in v0.3.45
func SplitUnit ¶ added in v0.3.45
func SplitUnit(str string, low bool) []SplitUnits
拆分单位和金额数值
str 字符串 low 是否小写单位
type UaInfo ¶
type UaInfo struct { Mobile bool `json:"mobile"` // 是否是移动设备 Bot bool `json:"bot"` // 是否是机器人程序 Mozilla string `json:"mozilla"` // Mozilla版本 Model string `json:"model"` // 手机型号 Platform string `json:"platform"` // 所在平台 OS string `json:"os"` // 操作系统 EngineName string `json:"engine_name"` // 引擎名称 EngineVersion string `json:"engine_version"` // 引擎版本 BrowName string `json:"brow_name"` // 浏览器名称 BrowVersion string `json:"brow_version"` // 浏览器版本 }
根据UA解析其中内容
Source Files ¶
- any2any.go
- camel_case.go
- check.go
- dervice_id.go
- desensitization.go
- emoji.go
- encoding.go
- encryption.go
- format.go
- has.go
- html_trim.go
- init.go
- j2jmap.go
- jnumber.go
- jp2j.go
- mac.go
- name.go
- pad.go
- parse_size.go
- parse_time_duration.go
- random.go
- split_int.go
- split_unit.go
- string2int.go
- tar.go
- time.go
- to_day_int.go
- to_time.go
- ua.go
- url.go
- uuid.go