xstring

package
v0.2.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2023 License: BSD-3-Clause-Clear Imports: 23 Imported by: 0

Documentation

Overview

xstring包

Index

Constants

View Source
const (
	// 将字符串填充到左侧
	PAD_LEFT = 1
	// 将字符串填充到右侧
	PAD_RIGHT = 2
)

字符串填充位置

Variables

View Source
var WeekList = map[uint8]string{
	0: "日",
	1: "一",
	2: "二",
	3: "三",
	4: "四",
	5: "五",
	6: "六",
}

周uint定位

Functions

func AString added in v0.1.32

func AString(c any) string

Any类型变量转为String类型变量

c	待转换的变量

func Any2any added in v0.2.1

func Any2any(old, new any) error

结构体转换【通过json进行转换,所以建立结构体时请注意json对应】

old	待转换的变量类型
new	转换后的变量存储位置【此值需要为指针】

func B2Int

func B2Int(s string) (num int64)

二进制转十进制

s	string	需要转换的二进制数

func BankCard added in v0.1.18

func BankCard(t string) string

银行卡号脱敏

t	待脱敏的银行卡号

func BankCardFormat added in v0.1.18

func BankCardFormat(t string) string

银行卡号格式化

t	待格式化的银行卡号

func Base64

func Base64(p string) string

对字符串进行base64编码

p	待编码的字符串

func Base64Raw

func Base64Raw(p string) string

对字符串进行base64编码[去除填充吗,一般用于jwt]

p	待编码的字符串

func CamelCase added in v0.1.23

func CamelCase(str string) string

数据库表名转模型名【大驼峰转换】 PS: 此函数会将abc_def的表名转换为AbcDef的大驼峰命名

str	待转换的下划线命名的数据库表名称

func CardNo added in v0.1.18

func CardNo(t string) string

身份证号脱敏

t	脱敏前的身份证号

func CardNoFormat added in v0.1.18

func CardNoFormat(t string) string

身份证号格式化

t	格式化前的身份证号

func Charset

func Charset(src string, srcCode string, target string) []byte

字符串编码转换

str		string	要转换的字符串
strCode	string	输入字符串编码
target	string	输出字符串编码格式

func CheckCardNo added in v0.1.21

func CheckCardNo(c string) bool

中国国民身份证号效验[15、18位身份证号码格式]

c	待效验的字符串

func CheckDate added in v0.1.21

func CheckDate(c string) bool

日期格式效验

c	待效验的字符串

func CheckDateTime added in v0.1.21

func CheckDateTime(c string) bool

日期时间格式效验

c	待效验的字符串

func CheckDomain added in v0.1.21

func CheckDomain(c string) bool

域名格式效验

c	待效验的字符串

func CheckEmail added in v0.1.21

func CheckEmail(c string) bool

邮箱格式效验

c	待效验的邮箱

func CheckIpv4 added in v0.1.21

func CheckIpv4(c string) bool

IPV4格式效验

c	待效验的字符串

func CheckIpv6 added in v0.1.21

func CheckIpv6(c string) bool

IPV6格式效验

c	待效验的字符串

func CheckNumber added in v0.1.21

func CheckNumber(c string) bool

纯数字格式效验

c	待效验的数字

func CheckPassword added in v0.1.21

func CheckPassword(c string, num, a, A, f bool) bool

效验用户输入的规则是否符合密码规则

c	待效验的字符串
num	必须输入数字?
a	必须输入小写字母?
A	必须输入大写字母?
f	必须存在ANSI标识内的符号

func CheckPhone added in v0.1.21

func CheckPhone(c string, fix bool) bool

手机号规则效验-国内手机号效验

c	待效验的手机号
fix	是否携带前缀

func CheckPhoneOther added in v0.1.21

func CheckPhoneOther(c string, gj string) bool

手机号规则效验-国际手机号效验(携带前缀)

c	待效验的手机号
gj	国家标识[如果不存在的话就会返回false,支持列表为内部的gj_phone字典进行效验,空表示全部效验,只要有一个通过就行]

func CheckRep added in v0.1.21

func CheckRep(c, rep string) bool

指定正则格式效验

c	待效验的字符串
rep	正则表达式

func CheckTel added in v0.1.21

func CheckTel(c string) bool

电话格式效验

c	待效验的字符串

func CheckTime added in v0.1.21

func CheckTime(c string) bool

时间格式效验

c	待效验的字符串

func CheckUrl added in v0.1.21

func CheckUrl(c string) bool

域名格式效验

c	待效验的字符串

func CheckUsername added in v0.1.21

func CheckUsername(c string) bool

效验用户输入的规则符合用户名规则:英文大小写字母+数字

c	待效验的字符串

func CheckVersion added in v0.1.30

func CheckVersion(min, now string) bool

版本检测,返回是否需要更新

min	最小版本号
now	当前版本号

func Des added in v0.1.20

func Des(src, key []byte) []byte

des的cbc模式加密函数

src	明文
key	密钥,大小为8byte

func EmojiDecode

func EmojiDecode(s string) string

表情解码 将emoji表情替换成类似[\u1f415]的字符串

s	待解码的含emoji表情的字符串

func EmojiEncode

func EmojiEncode(s string) string

表情编码 将类似[\u1f415]的解码emoji表情转换为原始的emoji表情

s	含有类似[\u1f415]字符串的字符串

func Format added in v0.1.18

func Format(number, format string) string

数字格式化

number	待格式化的数字
format	格式化成的字符串,以0替代数字,*替换原符号,其他字节直接原样输出

func HasContains

func HasContains(str string) bool

检测字符串中是否存在中文

str	待检测的字符串

func HasContainsQuest

func HasContainsQuest(str string) bool

快速检测字符串中是否存在中文 此处采用的为国标码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

func HasEmoji(str string) bool

判断字符串中是否存在emoji表情【此处使用rune的取值范围来确定是不是emoji表情,中文最大值为0xffff】 此处采用的为国标码GB18030和国际码Unicode中都有收录emoji图形符号 0x2600 ~ 0x27ff 0x1f000 ~ 0x1f6ff

str	待判断的字符串

func HasLetter added in v0.1.8

func HasLetter(str string) bool

检测字符串中是否存在英文字母

str	待检测的字符串

func HasLetterLower added in v0.1.8

func HasLetterLower(str string) bool

检测字符串中是否存在英文字母-小写字母

str	待检测的字符串

func HasLetterUp added in v0.1.8

func HasLetterUp(str string) bool

检测字符串中是否存在英文字母-大写字母

str	待检测的字符串

func HasNumber added in v0.1.8

func HasNumber(str string) bool

检测字符串中是否存在数字

str	待检测的字符串

func HasPunct added in v0.1.8

func HasPunct(str string) bool

检测字符串中是否存在Unicode标点符号

str	待检测的字符串

func HasSpace added in v0.1.8

func HasSpace(str string) bool

检测字符串中是否存在空白符

str	待检测的字符串

func Hex2Bin added in v0.1.25

func Hex2Bin(str string) []byte

16进制转二进制byte

str	待转换的16进制字符串

func HtmlTrim

func HtmlTrim(src string) string

去除html标签和空白符

src	待去除的网页代码

func JFloat32

func JFloat32(c json.Number) float32

json.Number转float32类型 因此类型为json转为float64以后再次转为其他数值类型,可能会存在数值溢出的问题

c	待转换的类型

func JFloat64

func JFloat64(c json.Number) float64

json.Number转float64类型 因此类型为json转为float64以后再次转为其他数值类型,可能会存在数值溢出的问题

c	待转换的类型

func JInt

func JInt(c json.Number) int

json.Number转int类型 因此类型为json转为int64以后再次转为其他数值类型,可能会存在数值溢出的问题

c	待转换的类型

func JInt16

func JInt16(c json.Number) int16

json.Number转int16类型 因此类型为json转为int64以后再次转为其他数值类型,可能会存在数值溢出的问题

c	待转换的类型

func JInt64

func JInt64(c json.Number) int64

json. 因此类型为json转为int64以后再次转为其他数值类型,可能会存在数值溢出的问题

c	待转换的类型

func JInt8

func JInt8(c json.Number) int8

json.Number转int8类型 因此类型为json转为int64以后再次转为其他数值类型,可能会存在数值溢出的问题

c	待转换的类型

func JUint

func JUint(c json.Number) uint

json.Number转uint类型 因此类型为json转为int64以后再次转为其他数值类型,可能会存在数值溢出的问题

c	待转换的类型

func JUint16

func JUint16(c json.Number) uint16

json.Number转uint16类型 因此类型为json转为int64以后再次转为其他数值类型,可能会存在数值溢出的问题

c	待转换的类型

func JUint64

func JUint64(c json.Number) uint64

json.Number转uint64类型 因此类型为json转为int64以后再次转为其他数值类型,可能会存在数值溢出的问题

c	待转换的类型

func JUint8

func JUint8(c json.Number) uint8

json.Number转uint8类型 因此类型为json转为int64以后再次转为其他数值类型,可能会存在数值溢出的问题

c	待转换的类型

func Jwt

func Jwt(key []byte, payloadData any) (string, error)

生成jwt签名

key			签名
payloadData	待加密的内容

func MD5

func MD5(text string) string

计算字符串的MD5值

text	待计算的字符串值

func MD5Byte

func MD5Byte(data []byte) string

计算byte字节流的MD5值

data	待计算的字节流的值

func MD5File

func MD5File(file string) string

计算文件的MD5值

file	文件的绝对路径

func Mac added in v0.1.34

func Mac() map[string]string

获取设备网卡MAC地址,一般使用此方法来计算设备的唯一标识

func Pad

func Pad(input string, padLength int, padString string, padType int) string

字符串填充到指定长度

input	string	原字符串
padLength	int	规定补齐后的字符串位数
padString	string	自定义填充字符串
padType	string	填充类型:PAD_LEFT(向左填充,自动补齐位数), 默认右侧

func Phone

func Phone(t string) string

手机号脱敏

t	待脱敏的手机号

func PhoneFormat added in v0.1.18

func PhoneFormat(t string) string

手机号格式化

t	待格式化的手机号

func Random

func Random(l int, arg ...string) string

获取随机数

l	int	获取随机数长度
arg	string	可选参数,随机数的发生范围【只有第一个可选参数生效】

func RandomNo added in v0.1.30

func RandomNo(cp string, l int) string

生成`年月日时分秒毫秒`的流水号 返回长度:14+len(cp)+l

cp	流水号前缀
l	毫秒位数,3-毫秒 6-微秒 9-纳秒,取值:1~9,不在此范围内则转化为3

func RandomPass

func RandomPass(l int, num, up, dow, sym bool) string

随机密码生成

l	密码长度
num	是否含有数字
up	是否含有大写字母
dow	是否含有小写字母
sym	是否含有特殊符号

func Regedit added in v0.2.1

func Regedit(c *Config)

配置项注入

func SHA1

func SHA1(text string) string

计算字符串的SHA1值

func SHA1Byte

func SHA1Byte(data []byte) string

计算byte字节流的SHA1值

data	待计算的字节流

func SHA1File

func SHA1File(file string) string

计算文件的SHA1

file	文件的绝对路径

func TimeDateAge

func TimeDateAge(str1 string) (uint, error)

计算传入日期到现在的时间差[单位-年,用于计算年龄] str1需为yyyy-mm-dd格式的时间才行

str1	用户出生日期

func TimeDateDiff

func TimeDateDiff(str1, str2 string) (time.Duration, error)

计算两个时间的时间差【第一个日期比第二个日期大则为正数】 str1和str2均为yyyy-mm-dd格式的时间才行

str1	日期参数1
str2	日期参数2

func TimeDiff

func TimeDiff(str1, str2 string) (time.Duration, error)

计算两个时间的时间差 str1和str2均为yyyy-mm-dd hh:mm:ss格式的时间才行

str1	日期时间参数1
str2	日期时间参数2

func ToFloat32

func ToFloat32(s string) float32

字符串转float32

s	string	待转换的字符串

func ToFloat64

func ToFloat64(s string) float64

字符串转float64

s	string	待转换的字符串

func ToInt

func ToInt(s string) int

字符串转int

s	string	待转换的字符串

func ToInt64

func ToInt64(s string) int64

字符串转int64

s	string	待转换的字符串

func ToInt8

func ToInt8(s string) int8

字符串转int8类型

s	string	待转换的字符串

func ToTime

func ToTime(date string) *time.Time

时间字符串转为时间

date	待转换的时间字符串,支持格式为([]内的为选填字符):
	[yy]yy-[m]m-[d]d hh:mm[:ss]
	[yy]yy-[m]m-[d]d

func ToUint

func ToUint(s string) uint

字符串转uint

s	string	待转换的字符串

func ToUint16

func ToUint16(s string) uint16

字符串转uint16

s	string	待转换的字符串

func ToUint64

func ToUint64(s string) uint64

字符串转uint64

s	string	待转换的字符串

func ToUint8

func ToUint8(s string) uint8

字符串转uint8

s	string	待转换的字符串

func UUID

func UUID() string

生成UUID

基于 `satori/go.uuid` 库,使用

func UnBase64

func UnBase64(p string) string

对字符串进行encode64解码

p	待解码的字符串

func UnBase64Raw

func UnBase64Raw(p string) string

对字符串进行encode64解码[去除填充解码,一般用于jwt]

p	待解码的字符串

func UnDes added in v0.1.20

func UnDes(src, key []byte) []byte

des解密函数

src	要解密的密文
key	密钥,和加密密钥相同,大小为8byte

func UnJwt

func UnJwt(key []byte, token string, stu any) error

带签名秘钥的JWT解密

key		签名秘钥
token	JWT字符串
stu		结构体形式的参数体

func UnJwtNoKey

func UnJwtNoKey(token string, stu any) error

JWTToken 无视秘钥进行解密

token	JWT token结构体
stu		JWT token解析出的数据

Types

type Config added in v0.2.1

type Config struct {
	DebugLog func(msg string, err error) // DEBUG日志记录
}

配置项信息

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解析其中内容

func Ua2info

func Ua2info(user_agent_string string) UaInfo

根据UA获取详情信息

user_agent_string	UA拆分前的UA头

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL