Skip to main content

str

函数名函数描述/介绍
str.CalcSSDeepCalcSSDeep 计算并返回一段文本的模糊哈希值
str.CalcSSDeepStabilityCalcSSDeepStability 使用模糊哈希算法计算多段文本之间的相似度,返回相似度与错误。传入的文本应该为大文本,即长度大于 30 kb。
str.CalcSimHashCalcSimHash 计算并返回一段文本的 SimHash 值
str.CalcSimHashStabilityCalcSimHashStability 使用 SimHash 算法计算多段文本之间的相似度,返回相似度与错误。
str.CalcSimilarityCalcSimilarity 计算多段文本之间的相似度,根据最长的文本长度选择不同的算法 如果最长的文本长度小于等于 2000,使用文本子串匹配算法 如果最短的文本长度大于等于 30000,使用模糊哈希算法 如果上述算法出现错误,则使用 SimHash 算法
str.CalcTextMaxSubStrStabilityCalcTextMaxSubStrStability 使用文本子串匹配算法计算多段文本之间的相似度,返回相似度与错误
str.CompareCompare 按照ascii码表顺序逐个比较字符串a和b中的每个字符,如果a==b,则返回0,如果a<b,则返回-1,如果a>b,则返回1
str.ContainsContains 判断字符串s是否包含substr
str.ContainsAnyContainsAny 判断字符串s是否包含chars中的任意字符
str.CountCount 返回字符串s中substr出现的次数
str.CutCut slices s around the first instance of sep, returning the text before and after sep. The found result reports whether sep appears in s. If sep does...
str.CutPrefixCutPrefix returns s without the provided leading prefix string and reports whether it found the prefix. If s doesn't start with prefix, CutPrefix ...
str.CutSuffixCutSuffix returns s without the provided ending suffix string and reports whether it found the suffix. If s doesn't end with suffix, CutSuffix ret...
str.EndsWithEndsWith / HasSuffix 判断字符串s是否以suffix结尾
str.EqualFoldEqualFold 判断字符串s和t是否相等,忽略大小写
str.ExtractBodyFromHTTPResponseRawExtractBodyFromHTTPResponseRaw 从原始 HTTP 响应报文中提取 body
str.ExtractChineseIDCardsExtractChineseIDCards 尝试将传入的参数转换为字符串,然后提取字符串中的身份证号
str.ExtractDomainExtractDomain 尝试提取字符串中的域名并返回,后续可以接收一个 tryDecode 参数,如果传入 true,则会尝试对输入的文本进行解码(双重URL编码,URL编码,unicode编码,quoted编码)
str.ExtractHostExtractHost 尝试从字符串中解析出host和port,并返回host
str.ExtractHostPortExtractHostPort 尝试从字符串中解析出host和port,并返回host:port
str.ExtractJsonExtractJson 尝试提取字符串中的 JSON 并进行修复返回
str.ExtractJsonWithRawExtractJsonWithRaw 尝试提取字符串中的 JSON 并返回,第一个返回值返回经过修复后的JSON字符串数组,第二个返回值返回原始JSON字符串数组(如果修复失败)
str.ExtractRootDomainExtractRootDomain 尝试提取字符串中的根域名并返回
str.ExtractStrContextExtractStrContext 从字符串raw中提取一组关键字res上下文的内容,上下文的长度是512个字符确定。
str.ExtractTitleExtractTitle 尝试将传入的字符串进行HTML解析并提取其中的标题(title标签)返回
str.ExtractURLFromHTTPRequestExtractURLFromHTTPRequest 从 HTTP 请求结构体中提取 URL,返回URL结构体与错误
str.ExtractURLFromHTTPRequestRawExtractURLFromHTTPRequestRaw 从原始 HTTP 请求报文中提取 URL,返回URL结构体与错误
str.FieldsFields 返回将字符串s按照空白字符('\t', '\n', '\v', '\f', '\r', ' ', 0x85, 0xA0)分割的字符串切片
str.FilterPortsFilterPorts 接受两个字符串形式的端口列表作为参数,返回一个新的端口列表, 其中包含了在 ports1 中但不在 ports2 中的所有端口。 这个函数首先将两个输入字符串解析为端口列表,然后创建一个映射(或集合)来存储 ports2 中的所有端口。 然后,它遍历 `po...
str.FixHTTPRequestFixHTTPRequest 尝试对传入的HTTP请求报文进行修复,并返回修复后的请求
str.FixHTTPResponseFixHTTPResponse 尝试对传入的响应进行修复,并返回修复后的响应,响应体和错误
str.GrokGrok 用于将字符串 line 使用 Grok 以规则 rule 进行解析,并返回解析结果(map),参考 https://doc.yonyoucloud.com/doc/logstash-best-practice-cn/filter/grok.html 获取更多信息。
str.HasPrefixStartsWith / HasPrefix 判断字符串s是否以prefix开头
str.HasSuffixEndsWith / HasSuffix 判断字符串s是否以suffix结尾
str.HostPortHostPort 将 host 和 port 拼接成 host:port 的形式
str.IPv4ToCClassNetworkIPv4ToCClassNetwork 尝试从一个 IPv4 地址中获取 C 类网络地址,并返回错误
str.IndexIndex 返回字符串s中substr第一次出现的位置的索引,如果字符串中不存在substr,则返回-1
str.IndexAnyIndexAny 返回字符串s中chars任意字符首次出现的位置的索引,如果字符串中不存在chars,则返回-1
str.IndexByteIndexByte 返回字符串s中第一个等于c的字符的索引,如果字符串中不存在c,则返回-1
str.IntersectIntersect / IntersectString 返回两个字符串切片之间的交集
str.IntersectStringIntersect / IntersectString 返回两个字符串切片之间的交集
str.IsAlNumIsAlphaNum / IsAlNum 尝试将传入的参数转换为字符串,然后判断其是否都由英文字母和数字组成
str.IsAlphaIsAlpha 尝试将传入的参数转换为字符串,然后判断其是否都由英文字母组成
str.IsAlphaNumIsAlphaNum / IsAlNum 尝试将传入的参数转换为字符串,然后判断其是否都由英文字母和数字组成
str.IsBase64ValueIsBase64Value 尝试将传入的参数转换为字符串,然后猜测其是否是 Base64 编码的数据
str.IsCaptchaFieldIsCaptchaField 尝试将传入的参数转换为字符串,然后猜测其是否是验证码字段
str.IsDigitIsDigit 尝试将传入的参数转换为字符串,然后判断其是否都由数字组成
str.IsHtmlResponseIsHtmlResponse 猜测传入的参数是否为原始 HTTP 响应报文
str.IsHttpURLIsFullURL 根据 value 猜测是否是一个完整 url,目前只关心 http 和 https
str.IsIPv4IsIPv4 判断字符串是否是 IPv4 地址
str.IsIPv6IsIPv6 判断字符串是否是 IPv6 地址
str.IsJSONPParamIsJSONPParam 根据传入的参数名和参数值猜测是否为 JSONP 参数
str.IsJsonResponseIsJsonResponse 尝试将传入的参数转换为字符串,然后猜测传入的参数是否为 JSON 格式的原始 HTTP 响应报文,这是通过判断Content-Type请求头实现的
str.IsMD5ValueIsMD5Value 尝试将传入的参数转换为字符串,然后猜测其是否是 MD5 编码的数据
str.IsPasswordFieldIsPasswordField 尝试将传入的参数转换为字符串,然后猜测其是否是 password 字段
str.IsPlainBase64ValueIsPlainBase64Value 尝试将传入的参数转换为字符串,然后猜测其是否是 Base64 编码的数据,它相比于 IsBase64Value 多了一层判断,即判断 base64 解码后的数据是否为可见字符串
str.IsRedirectParamIsRedirectParam 根据传入的参数名和参数值猜测是否为重定向参数
str.IsSQLColumnFieldIsSQLColumnField 尝试将传入的参数转换为字符串,然后猜测其是否是 SQL 查询字段
str.IsSensitiveJsonIsSensitiveJson 尝试将传入的参数转换为字符串,然后猜测其是否为敏感的 JSON 数据
str.IsSensitiveTokenFieldIsSensitiveTokenField 尝试将传入的参数转换为字符串,然后猜测其是否是 token 字段
str.IsServerErrorIsServerError 猜测传入的参数是否为服务器错误
str.IsSha256ValueIsSha256Value 尝试将传入的参数转换为字符串,然后猜测其是否是 SHA256 编码的数据
str.IsStrongPasswordIsStrongPassword 判断字符串是否为强密码,强密码的定义为:长度大于8,同时包含特殊字符、小写字母、大写字母、数字
str.IsTLSServerIsTLSServer 尝试访问传入的host,然后判断其是否为 TLS 服务。第一个参数为 host,后面可以传入零个或多个参数,为代理地址
str.IsUrlParamIsUrlParam 根据传入的参数名和参数值猜测是否为 URL 参数
str.IsUrlPath根据 value 猜测是否是一个 url path
str.IsUsernameFieldIsUsernameField 尝试将传入的参数转换为字符串,然后猜测其是否是 username 字段
str.IsXmlParamIsXmlParam 根据传入的参数名和参数值猜测是否为 XML 参数
str.IsXmlRequestIsXmlRequest 猜测传入的参数是否为请求头是 XML 格式的原始 HTTP 请求报文
str.IsXmlValueIsXmlValue 尝试将传入的参数转换为字符串,然后猜测其是否是 XML 格式的数据
str.JoinJoin 将i中的元素用d连接,如果传入的参数不是字符串,会自动将其转为字符串,再将其用d连接。如果连接失败,则会返回i的字符串形式。
str.JsonToMapJsonToMap 将 json 字符串 line 解析为 map
str.JsonToMapListJsonToMapList 将 json 字符串 line 解析为 map 列表
str.LastIndexLastIndex 返回字符串s中substr最后一次出现的位置的索引,如果字符串中不存在substr,则返回-1
str.LastIndexAnyLastIndexAny 返回字符串s中chars任意字符最后一次出现的位置的索引,如果字符串中不存在chars,则返回-1
str.LastIndexByteLastIndexByte 返回字符串s中最后一个等于c的字符的索引,如果字符串中不存在c,则返回-1
str.LowerAndTrimSpaceLowerAndTrimSpace 将字符串raw转换为小写并去除前后空白字符
str.MatchAllOfGlobMatchAllOfGlob 尝试将 i 转换为字符串,然后使用 glob 匹配模式匹配,如果所有的glob模式都匹配成功,则返回 true,否则返回 false
str.MatchAllOfRegexpMatchAllOfRegexp 尝试将 i 转换为字符串,然后使用正则表达式匹配,如果所有的正则表达式都匹配成功,则返回 true,否则返回 false
str.MatchAllOfSubStringMatchAllOfSubString 尝试将 i 转换为字符串,然后判断所有子串 subStr 是否都存在于 i 中,如果都存在则返回 true,否则返回 false,此函数忽略大小写
str.MatchAnyOfGlobMatchAnyOfGlob 尝试将 i 转换为字符串,然后使用 glob 匹配模式匹配,如果任意一个glob模式匹配成功,则返回 true,否则返回 false
str.MatchAnyOfRegexpMatchAnyOfRegexp 尝试将 i 转换为字符串,然后使用正则表达式匹配,如果任意一个正则表达式匹配成功,则返回 true,否则返回 false
str.MatchAnyOfSubStringMatchAnyOfSubString 尝试将 i 转换为字符串,然后判断是否有任意子串 subStr 存在于 i 中,如果有其中一个子串存在于 i 中则返回 true,否则返回 false,此函数忽略大小写
str.MergeUrlFromHTTPRequestMergeUrlFromHTTPRequest 将传入的 target 与 原始 HTTP 请求报文中的 URL 进行合并,并返回合并后的 URL
str.NewFilterNewFilter 创建一个默认的字符串布谷鸟过滤器,布谷鸟过滤器用于判断一个元素是否在一个集合中,它存在极低的假阳性(即说存在的元素实际上不存在),通常这个集合中的元素数量非常大才会使用布谷鸟过滤器。
str.NewReaderNewReader returns a new [Reader] reading from s. It is similar to [bytes.NewBufferString] but more efficient and non-writable.
str.ParamsGetOrParamsGetOr 从 map 中获取 key 对应的值,如果不存在则返回 defaultValue
str.ParseBytesToHTTPRequestParseBytesToHTTPRequest 将字节数组解析为 HTTP 请求
str.ParseBytesToHTTPResponseParseBytesToHTTPResponse 将字节数组解析为 HTTP 响应
str.ParseStringToCClassHostsParseStringToCClassHosts 尝试从给定的字符串中解析Host,再将其转为 C 类网段,用,分隔
str.ParseStringToHTTPRequestParseStringToHTTPRequest 将字符串解析为 HTTP 请求
str.ParseStringToHTTPResponseParseStringToHTTPResponse 将字符串解析为 HTTP 响应
str.ParseStringToHostPortParseStringToHostPort 尝试从字符串中解析出host和port,并与错误一起返回
str.ParseStringToHostsParseStringToHosts 将字符串解析成 Host 列表, Host 可以以逗号、换行分隔,并且会解析 CIDR 网段
str.ParseStringToLinesParseStringToLines 将字符串按换行符(\n)分割成字符串数组,并去除BOM头和空行
str.ParseStringToPortsParseStringToPorts 将字符串解析成 Port 列表, Port 可以以逗号分隔,并且会解析-分隔的范围
str.ParseStringToUrlsParseStringToUrls 尝试从给定的字符串(ip,域名)中解析出 URL 列表,补全协议和端口
str.ParseStringToUrlsWith3WParseStringToUrlsWith3W 尝试从给定的字符串(ip,域名)中解析出 URL 列表,补全协议和端口,还会补全域名前的 www 前缀
str.ParseStringUrlToUrlInstanceParseStringUrlToUrlInstance 将字符串 url 解析为 URL 结构体并返回错误
str.ParseStringUrlToWebsiteRootPathParseStringUrlToWebsiteRootPath 将字符串 url 解析为其根路径的URL
str.PathJoinPathJoin 将传入的文件路径进行拼接并返回
str.RandSecretRandSecret 返回在所有可见ascii字符表中随机挑选 n 个字符组成的密码字符串,这个密码经过str.IsStrongPassword验证,即为强密码
str.RandStrRandStringBytes 返回在大小写字母表中随机挑选 n 个字符组成的字符串
str.RandomRandomUpperAndLower 返回一个随机大小写的字符串
str.RegexpMatchRegexpMatch 使用正则尝试匹配字符串,如果匹配成功返回 true,否则返回 false
str.RemoveDuplicatePortsRemoveDuplicatePorts 解析两个字符串形式的端口列表,并使用布谷鸟过滤器进行去重。 这个函数首先创建一个布谷鸟过滤器,然后将两个输入字符串解析为端口列表。 接着,它遍历这两个列表,将每个端口添加到布谷鸟过滤器中,如果这个端口之前没有被添加过, 那么它也会被添加到结果列表中。最...
str.RemoveRepeatRemoveRepeat 移除字符串切片slc中的重复元素
str.RepeatRepeat 返回将字符串s重复count次的字符串
str.ReplaceReplace 返回将字符串s中前n个old字符串替换为new字符串的字符串
str.ReplaceAllReplaceAll 返回将字符串s中所有old字符串替换为new字符串的字符串
str.ReplaceHTTPPacketBodyReplaceBody 将原始 HTTP 请求报文中的 body 替换为指定的 body,并指定是否为 chunked,返回新的 HTTP 请求报文
str.SplitSplit 将字符串s按照sep分割成字符串切片
str.SplitAfterSplitAfter 将字符串s按照sep分割成字符串切片,但是每个元素都会保留sep
str.SplitAfterNSplitAfterN 将字符串s按照sep分割成字符串切片,但是每个元素都会保留sep,最多分为n个元素
str.SplitAndTrimSplitAndTrim 将字符串s按照sep分割成字符串切片,并且去除每个字符串的前后空白字符
str.SplitHTTPHeadersAndBodyFromPacketSplitHTTPHeadersAndBodyFromPacket 将传入的 HTTP 报文分割为 headers 和 body,如果传入了hook,则会在每次读取到一行 header 时调用 hook
str.SplitHostsToPrivateAndPublicSplitHostsToPrivateAndPublic 将 hosts 按照私有 IP 和公有 IP 分开
str.SplitNSplitN 将字符串s按照sep分割成字符串切片,最多分为n个元素
str.StartsWithStartsWith / HasPrefix 判断字符串s是否以prefix开头
str.StringContainsAnyOfSubStringStringContainsAnyOfSubString 判断字符串s中是否包含subs中的任意一个子串
str.StringSliceContainsStringSliceContains 判断字符串切片s中是否包含raw,对于非字符串的切片,会尝试将其元素转换为字符串再判断是否包含
str.StringSliceContainsAllStringSliceContainsAll 判断字符串切片s中是否完全包含elements中的所有元素,对于非字符串的切片,会尝试将其元素转换为字符串再判断是否包含
str.SubtractSubtract 返回两个字符串切片的差集
str.TitleTitle 返回字符串s的标题化版本,即所有单词的首字母都是大写的
str.ToJsonIndentStrToJsonIndentStr 将v转换为格式化的JSON字符串并返回,如果转换失败,则返回空字符串
str.ToLowerToLower 返回字符串s的小写形式
str.ToLowerSpecialToLowerSpecial returns a copy of the string s with all Unicode letters mapped to their lower case using the case mapping specified by c.
str.ToStringSliceToStringSlice 将任意类型的数据转换为字符串切片
str.ToTitleToTitle 返回字符串s的标题化版本,其中所有Unicode字母都会被转换为其大写
str.ToTitleSpecialToTitleSpecial returns a copy of the string s with all Unicode letters mapped to their Unicode title case, giving priority to the special casing rules...
str.ToUpperToUpper 返回字符串s的大写形式
str.ToUpperSpecialToUpperSpecial returns a copy of the string s with all Unicode letters mapped to their upper case using the case mapping specified by c.
str.ToValidUTF8ToValidUTF8 返回将字符串s中无效的UTF-8编码替换为replacement的字符串
str.TrimTrim 返回将字符串s两侧所有包含cutset字符串中的字符都去掉的字符串
str.TrimLeftTrimLeft 返回将字符串s左侧所有包含cutset字符串中的字符都去掉的字符串
str.TrimPrefixTrimPrefix 返回将字符串s前缀prefix去掉的字符串
str.TrimRightTrimRight 返回将字符串s右侧所有包含cutset字符串中的字符都去掉的字符串
str.TrimSpaceTrimSpace 返回将字符串s两侧所有的空白字符都去掉的字符串
str.TrimSuffixTrimSuffix 返回将字符串s后缀suffix去掉的字符串
str.UrlJoinUrlJoin 将 字符串 origin 和 字符串数组 paths 拼接成一个新的 URL 字符串,并返回错误
str.VersionCompareVersionCompare 泛用形的版本比较,传入(p1,p2 string), p1>p2返回1,nil, p1<p2返回-1,nil, p1==p2返回0,nil, 比较失败返回 -2,err
str.VersionEqualVersionEqual 使用版本比较算法比较版本 v1 与版本 v2,如果 v1 等于 v2 返回 true,否则返回 false
str.VersionGreaterVersionGreater 使用版本比较算法比较版本 v1 与版本 v2,如果 v1 大于 v2 返回 true,否则返回 false
str.VersionGreaterEqualVersionGreaterEqual 使用版本比较算法比较版本 v1 与版本 v2,如果 v1 大于等于 v2 返回 true,否则返回 false
str.VersionLessVersionLess 使用版本比较算法比较版本 v1 与版本 v2,如果 v1 小于 v2 返回 true,否则返回 false
str.VersionLessEqualVersionLessEqual 使用版本比较算法比较版本 v1 与版本 v2,如果 v1 小于等于 v2 返回 true,否则返回 false
str.ff 用于对字符串进行格式化

函数定义#

CalcSSDeep#

详细描述#

CalcSSDeep 计算并返回一段文本的模糊哈希值

Example:

str.CalcSSDeep("hello")

定义#

CalcSSDeep(raw []byte) string

参数#

参数名参数类型参数解释
raw[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1string

CalcSSDeepStability#

详细描述#

CalcSSDeepStability 使用模糊哈希算法计算多段文本之间的相似度,返回相似度与错误。传入的文本应该为大文本,即长度大于 30 kb。

Example:

p, err = str.CalcSSDeepStability(str.RandStr(100000), str.RandStr(100000))

定义#

CalcSSDeepStability(req ...[]byte) (float64, error)

参数#

参数名参数类型参数解释
req...[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1float64
r2error

CalcSimHash#

详细描述#

CalcSimHash 计算并返回一段文本的 SimHash 值

Example:

str.CalcSimHash("hello")

定义#

CalcSimHash(raw []byte) uint64

参数#

参数名参数类型参数解释
raw[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1uint64

CalcSimHashStability#

详细描述#

CalcSimHashStability 使用 SimHash 算法计算多段文本之间的相似度,返回相似度与错误。

Example:

p, err = str.CalcSimHashStability("hello", "hello world") // p = 0.96484375

定义#

CalcSimHashStability(req ...[]byte) (float64, error)

参数#

参数名参数类型参数解释
req...[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1float64
r2error

CalcSimilarity#

详细描述#

CalcSimilarity 计算多段文本之间的相似度,根据最长的文本长度选择不同的算法

如果最长的文本长度小于等于 2000,使用文本子串匹配算法

如果最短的文本长度大于等于 30000,使用模糊哈希算法

如果上述算法出现错误,则使用 SimHash 算法

Example:

str.CalcSimilarity("hello", "hello world") // 0.625

定义#

CalcSimilarity(raw ...[]byte) float64

参数#

参数名参数类型参数解释
raw...[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1float64

CalcTextMaxSubStrStability#

详细描述#

CalcTextMaxSubStrStability 使用文本子串匹配算法计算多段文本之间的相似度,返回相似度与错误

Example:

p, err = str.CalcTextMaxSubStrStability("hello", "hello world") // p = 0.625

定义#

CalcTextMaxSubStrStability(raw ...[]byte) (float64, error)

参数#

参数名参数类型参数解释
raw...[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1float64
r2error

Compare#

详细描述#

Compare 按照ascii码表顺序逐个比较字符串a和b中的每个字符,如果a==b,则返回0,如果a<b,则返回-1,如果a>b,则返回1

Example:

str.Compare("hello yak", "hello yak") // 0str.Compare("hello yak", "hello") // 1str.Compare("hello", "hello yak") // -1

定义#

Compare(a string, b string) int

参数#

参数名参数类型参数解释
astring
bstring

返回值#

返回值(顺序)返回值类型返回值解释
r1int

Contains#

详细描述#

Contains 判断字符串s是否包含substr

Example:

str.Contains("hello yakit", "yak") // true

定义#

Contains(s string, substr string) bool

参数#

参数名参数类型参数解释
sstring
substrstring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

ContainsAny#

详细描述#

ContainsAny 判断字符串s是否包含chars中的任意字符

Example:

str.ContainsAny("hello yak", "ly") // truestr.ContainsAny("hello yak", "m") // false

定义#

ContainsAny(s string, chars string) bool

参数#

参数名参数类型参数解释
sstring
charsstring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

Count#

详细描述#

Count 返回字符串s中substr出现的次数

Example:

str.Count("hello yak", "l") // 2

定义#

Count(s string, substr string) int

参数#

参数名参数类型参数解释
sstring
substrstring

返回值#

返回值(顺序)返回值类型返回值解释
r1int

Cut#

详细描述#

Cut slices s around the first instance of sep, returning the text before and after sep. The found result reports whether sep appears in s. If sep does not appear in s, cut returns s, "", false.

定义#

Cut(s string, sep string) (before string, after string, found bool)

参数#

参数名参数类型参数解释
sstring
sepstring

返回值#

返回值(顺序)返回值类型返回值解释
beforestring
afterstring
foundbool

CutPrefix#

详细描述#

CutPrefix returns s without the provided leading prefix string and reports whether it found the prefix. If s doesn't start with prefix, CutPrefix returns s, false. If prefix is the empty string, CutPrefix returns s, true.

定义#

CutPrefix(s string, prefix string) (after string, found bool)

参数#

参数名参数类型参数解释
sstring
prefixstring

返回值#

返回值(顺序)返回值类型返回值解释
afterstring
foundbool

CutSuffix#

详细描述#

CutSuffix returns s without the provided ending suffix string and reports whether it found the suffix. If s doesn't end with suffix, CutSuffix returns s, false. If suffix is the empty string, CutSuffix returns s, true.

定义#

CutSuffix(s string, suffix string) (before string, found bool)

参数#

参数名参数类型参数解释
sstring
suffixstring

返回值#

返回值(顺序)返回值类型返回值解释
beforestring
foundbool

EndsWith#

详细描述#

EndsWith / HasSuffix 判断字符串s是否以suffix结尾

Example:

str.EndsWith("Hello Yak", "Yak") // truestr.EndsWith("Hello Yak", "Hello") // false

定义#

EndsWith(s string, suffix string) bool

参数#

参数名参数类型参数解释
sstring
suffixstring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

EqualFold#

详细描述#

EqualFold 判断字符串s和t是否相等,忽略大小写

Example:

str.EqualFold("hello Yak", "HELLO YAK") // true

定义#

EqualFold(s string, t string) bool

参数#

参数名参数类型参数解释
sstring
tstring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

ExtractBodyFromHTTPResponseRaw#

详细描述#

ExtractBodyFromHTTPResponseRaw 从原始 HTTP 响应报文中提取 body

Example:

body, err = str.ExtractBodyFromHTTPResponseRaw(b"HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nok") // body = b"ok"

定义#

ExtractBodyFromHTTPResponseRaw(res []byte) ([]byte, error)

参数#

参数名参数类型参数解释
res[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte
r2error

ExtractChineseIDCards#

详细描述#

ExtractChineseIDCards 尝试将传入的参数转换为字符串,然后提取字符串中的身份证号

Example:

str.ExtractChineseIDCards("Your ChineseID is: 110101202008027420?") // ["110101202008027420"]

定义#

ExtractChineseIDCards(i any) []string

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

ExtractDomain#

详细描述#

ExtractDomain 尝试提取字符串中的域名并返回,后续可以接收一个 tryDecode 参数,如果传入 true,则会尝试对输入的文本进行解码(双重URL编码,URL编码,unicode编码,quoted编码)

Example:

str.ExtractDomain("hello yak") // []str.ExtractDomain("hello yaklang.com or yaklang.io") // ["yaklang.com", "yaklang.io"]str.ExtractDomain(`{"message:"%79%61%6b%6c%61%6e%67.com"}`, true) // ["yaklang.com"]

定义#

ExtractDomain(i any, tryDecode ...bool) []string

参数#

参数名参数类型参数解释
iany
tryDecode...bool

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

ExtractHost#

详细描述#

ExtractHost 尝试从字符串中解析出host和port,并返回host

Example:

str.ExtractHost("127.0.0.1:8888") // 127.0.0.1str.ExtractHost("https://example.com") // example.com

定义#

ExtractHost(raw string) string

参数#

参数名参数类型参数解释
rawstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ExtractHostPort#

详细描述#

ExtractHostPort 尝试从字符串中解析出host和port,并返回host:port

Example:

str.ExtractHostPort("https://127.0.0.1:8888") // 127.0.0.1:8888str.ExtractHostPort("https://baidu.com") // 127.0.0.1:443

定义#

ExtractHostPort(raw string) string

参数#

参数名参数类型参数解释
rawstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ExtractJson#

详细描述#

ExtractJson 尝试提取字符串中的 JSON 并进行修复返回

Example:

str.ExtractJson("hello yak") // []str.ExtractJson(`{"hello": "yak"}`) // [{"hello": "yak"}]

定义#

ExtractJson(i any) []string

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

ExtractJsonWithRaw#

详细描述#

ExtractJsonWithRaw 尝试提取字符串中的 JSON 并返回,第一个返回值返回经过修复后的JSON字符串数组,第二个返回值返回原始JSON字符串数组(如果修复失败)

Example:

str.ExtractJsonWithRaw("hello yak") // [], []str.ExtractJsonWithRaw(`{"hello": "yak"}`) // [{"hello": "yak"}], []

定义#

ExtractJsonWithRaw(i any) ([]string, []string)

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string
r2[]string

ExtractRootDomain#

详细描述#

ExtractRootDomain 尝试提取字符串中的根域名并返回

Example:

str.ExtractRootDomain("hello yak") // []str.ExtractRootDomain("hello www.yaklang.com or www.yaklang.io") // ["yaklang.com", "yaklang.io"]

定义#

ExtractRootDomain(i any) []string

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

ExtractStrContext#

详细描述#

ExtractStrContext 从字符串raw中提取一组关键字res上下文的内容,上下文的长度是512个字符确定。

Example:

str.ExtractStrContext("hello yak", ["hello"]) // ["hello yak"]

定义#

ExtractStrContext(raw string, res []string) []string

参数#

参数名参数类型参数解释
rawstring
res[]string

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

ExtractTitle#

详细描述#

ExtractTitle 尝试将传入的字符串进行HTML解析并提取其中的标题(title标签)返回

Example:

str.ExtractTitle("hello yak") // ""str.ExtractTitle("<title>hello yak</title>") // "hello yak"

定义#

ExtractTitle(i any) string

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ExtractURLFromHTTPRequest#

详细描述#

ExtractURLFromHTTPRequest 从 HTTP 请求结构体中提取 URL,返回URL结构体与错误

Example:

v, err = http.Raw("GET / HTTP/1.1\r\nHost: www.yaklang.com\r\n\r\n")url, err = str.ExtractURLFromHTTPRequest(v, false)

定义#

ExtractURLFromHTTPRequest(r *http.Request, https bool) (*url.URL, error)

参数#

参数名参数类型参数解释
r*http.Request
httpsbool

返回值#

返回值(顺序)返回值类型返回值解释
r1*url.URL
r2error

ExtractURLFromHTTPRequestRaw#

详细描述#

ExtractURLFromHTTPRequestRaw 从原始 HTTP 请求报文中提取 URL,返回URL结构体与错误

Example:

url, err := str.ExtractURLFromHTTPRequestRaw(b"GET / HTTP/1.1\r\nHost: www.yaklang.com\r\n\r\n", false)

定义#

ExtractURLFromHTTPRequestRaw(req []byte, isHttps bool) (*url.URL, error)

参数#

参数名参数类型参数解释
req[]byte
isHttpsbool

返回值#

返回值(顺序)返回值类型返回值解释
r1*url.URL
r2error

Fields#

详细描述#

Fields 返回将字符串s按照空白字符('\t', '\n', '\v', '\f', '\r', ' ', 0x85, 0xA0)分割的字符串切片

Example:

str.Fields("hello world\nhello yak\tand\vyakit") // [hello", "world", "hello", "yak", "and", "yakit"]

定义#

Fields(s string) []string

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

FilterPorts#

详细描述#

FilterPorts 接受两个字符串形式的端口列表作为参数,返回一个新的端口列表,

其中包含了在 ports1 中但不在 ports2 中的所有端口。

这个函数首先将两个输入字符串解析为端口列表,然后创建一个映射(或集合)来存储 ports2 中的所有端口。

然后,它遍历 ports1 中的每个端口,如果这个端口不在 ports2 中,那么它就会被添加到结果列表中。

最后,函数返回结果列表,其中包含了所有只在 ports1 中出现的端口。

Example:

FilterPorts("1-10", "2-10") // [1]

定义#

FilterPorts(sourcePorts string, excludePorts string) []int

参数#

参数名参数类型参数解释
sourcePortsstring
excludePortsstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]int

FixHTTPRequest#

详细描述#

FixHTTPRequest 尝试对传入的HTTP请求报文进行修复,并返回修复后的请求

Example:

str.FixHTTPRequest(b"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")

定义#

FixHTTPRequest(raw []byte) []byte

参数#

参数名参数类型参数解释
raw[]byte

返回值#

返回值(顺序)返回值类型返回值解释
r1[]byte

FixHTTPResponse#

详细描述#

FixHTTPResponse 尝试对传入的响应进行修复,并返回修复后的响应,响应体和错误

Example:

fixedResponse, body, err = str.FixHTTPResponse(b"HTTP/1.1 200 OK\r\nContent-Type: text/html; charset=gbk\r\n\r\n<html>你好</html>")

定义#

FixHTTPResponse(raw []byte) (rsp []byte, body []byte, _ error)

参数#

参数名参数类型参数解释
raw[]byte

返回值#

返回值(顺序)返回值类型返回值解释
rsp[]byte
body[]byte
_error

Grok#

详细描述#

Grok 用于将字符串 line 使用 Grok 以规则 rule 进行解析,并返回解析结果(map),参考 https://doc.yonyoucloud.com/doc/logstash-best-practice-cn/filter/grok.html 获取更多信息。

Example:

str.Grok("04/18-00:59:45.385191", "%{MONTHNUM:month}/%{MONTHDAY:day}-%{TIME:time}") // map[HOUR:[00] MINUTE:[59] SECOND:[45.385191] day:[18] month:[04] time:[00:59:45.385191]]

定义#

Grok(line string, rule string) GrokResult

参数#

参数名参数类型参数解释
linestring
rulestring

返回值#

返回值(顺序)返回值类型返回值解释
r1GrokResult

HasPrefix#

详细描述#

StartsWith / HasPrefix 判断字符串s是否以prefix开头

Example:

str.StartsWith("Hello Yak", "Hello") // truestr.StartsWith("Hello Yak", "Yak") // false

定义#

HasPrefix(s string, prefix string) bool

参数#

参数名参数类型参数解释
sstring
prefixstring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

HasSuffix#

详细描述#

EndsWith / HasSuffix 判断字符串s是否以suffix结尾

Example:

str.EndsWith("Hello Yak", "Yak") // truestr.EndsWith("Hello Yak", "Hello") // false

定义#

HasSuffix(s string, suffix string) bool

参数#

参数名参数类型参数解释
sstring
suffixstring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

HostPort#

详细描述#

HostPort 将 host 和 port 拼接成 host:port 的形式

Example:

str.HostPort("yaklang.com", 443) // yaklang.com:443

定义#

HostPort(host string, port any) string

参数#

参数名参数类型参数解释
hoststring
portany

返回值#

返回值(顺序)返回值类型返回值解释
r1string

IPv4ToCClassNetwork#

详细描述#

IPv4ToCClassNetwork 尝试从一个 IPv4 地址中获取 C 类网络地址,并返回错误

Example:

network, err = str.IPv4ToCClassNetwork("192.168.0.1") // network = "192.168.0.0/24", err = nil

定义#

IPv4ToCClassNetwork(s string) (network string, err error)

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
networkstring
errerror

Index#

详细描述#

Index 返回字符串s中substr第一次出现的位置的索引,如果字符串中不存在substr,则返回-1

Example:

str.Index("hello yak", "yak") // 6str.Index("hello world", "yak") // -1

定义#

Index(s string, substr string) int

参数#

参数名参数类型参数解释
sstring
substrstring

返回值#

返回值(顺序)返回值类型返回值解释
r1int

IndexAny#

详细描述#

IndexAny 返回字符串s中chars任意字符首次出现的位置的索引,如果字符串中不存在chars,则返回-1

Example:

str.IndexAny("Hello world", "world") // 2,因为l在第三个字符中首次出现str.IndexAny("Hello World", "Yak") // -1

定义#

IndexAny(s string, chars string) int

参数#

参数名参数类型参数解释
sstring
charsstring

返回值#

返回值(顺序)返回值类型返回值解释
r1int

IndexByte#

详细描述#

IndexByte 返回字符串s中第一个等于c的字符的索引,如果字符串中不存在c,则返回-1

Example:

str.IndexByte("hello yak", 'y') // 6str.IndexByte("hello yak", 'm') // -1

定义#

IndexByte(s string, c byte) int

参数#

参数名参数类型参数解释
sstring
cbyte

返回值#

返回值(顺序)返回值类型返回值解释
r1int

Intersect#

详细描述#

Intersect / IntersectString 返回两个字符串切片之间的交集

Example:

str.Intersect(["1", "2", "3"], ["3", "4", "5"]) // ["3"]

定义#

Intersect(x []string, y []string) []string

参数#

参数名参数类型参数解释
x[]string
y[]string

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

IntersectString#

详细描述#

Intersect / IntersectString 返回两个字符串切片之间的交集

Example:

str.Intersect(["1", "2", "3"], ["3", "4", "5"]) // ["3"]

定义#

IntersectString(x []string, y []string) []string

参数#

参数名参数类型参数解释
x[]string
y[]string

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

IsAlNum#

详细描述#

IsAlphaNum / IsAlNum 尝试将传入的参数转换为字符串,然后判断其是否都由英文字母和数字组成

Example:

str.IsAlphaNum("abc123") // truestr.IsAlphaNum("abc123!") // false

定义#

IsAlNum(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsAlpha#

详细描述#

IsAlpha 尝试将传入的参数转换为字符串,然后判断其是否都由英文字母组成

Example:

str.IsAlpha("abc") // truestr.IsAlpha("abc123") // false

定义#

IsAlpha(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsAlphaNum#

详细描述#

IsAlphaNum / IsAlNum 尝试将传入的参数转换为字符串,然后判断其是否都由英文字母和数字组成

Example:

str.IsAlphaNum("abc123") // truestr.IsAlphaNum("abc123!") // false

定义#

IsAlphaNum(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsBase64Value#

详细描述#

IsBase64Value 尝试将传入的参数转换为字符串,然后猜测其是否是 Base64 编码的数据

Example:

str.IsBase64Value("MTI=") // truestr.IsBase64Value("123") // false

定义#

IsBase64Value(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsCaptchaField#

详细描述#

IsCaptchaField 尝试将传入的参数转换为字符串,然后猜测其是否是验证码字段

Example:

str.IsCaptchaField("captcha") // truestr.IsCaptchaField("code_img") // truestr.IsCaptchaField("id") // false

定义#

IsCaptchaField(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsDigit#

详细描述#

IsDigit 尝试将传入的参数转换为字符串,然后判断其是否都由数字组成

Example:

str.IsDigit("123") // truestr.IsDigit("abc123") // false

定义#

IsDigit(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsHtmlResponse#

详细描述#

IsHtmlResponse 猜测传入的参数是否为原始 HTTP 响应报文

Example:

str.IsHtmlResponse("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<html></html>") // trueresp, _ = str.ParseStringToHTTPResponse("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<html></html>")str.IsHtmlResponse(resp) // true

定义#

IsHtmlResponse(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsHttpURL#

详细描述#

IsFullURL 根据 value 猜测是否是一个完整 url,目前只关心 http 和 https

定义#

IsHttpURL(v any) bool

参数#

参数名参数类型参数解释
vany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsIPv4#

详细描述#

IsIPv4 判断字符串是否是 IPv4 地址

Example:

str.IsIPv4("::1") // falsestr.IsIPv4("127.0.0.1") // true

定义#

IsIPv4(raw string) bool

参数#

参数名参数类型参数解释
rawstring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsIPv6#

详细描述#

IsIPv6 判断字符串是否是 IPv6 地址

Example:

str.IsIPv6("::1") // truestr.IsIPv6("127.0.0.1") // false

定义#

IsIPv6(raw string) bool

参数#

参数名参数类型参数解释
rawstring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsJSONPParam#

详细描述#

IsJSONPParam 根据传入的参数名和参数值猜测是否为 JSONP 参数

Example:

str.IsJSONPParam("callback","jquery1.0.min.js") // true,因为参数名为常见的 JSONP 参数名,且参数值为常见的JS文件名str.IsJSONPParam("f","jquery1.0.min.js") // true,因为参数值为常见的 JS 文件名str.IsJSONPParam("id","1") // false

定义#

IsJSONPParam(key string, value string) bool

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsJsonResponse#

详细描述#

IsJsonResponse 尝试将传入的参数转换为字符串,然后猜测传入的参数是否为 JSON 格式的原始 HTTP 响应报文,这是通过判断Content-Type请求头实现的

Example:

str.IsJsonResponse("HTTP/1.1 200 OK\r\nContent-Type: application/json\r\n\r\n{\"code\": 0}") // truestr.IsJsonResponse("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\nhello") // false

定义#

IsJsonResponse(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsMD5Value#

详细描述#

IsMD5Value 尝试将传入的参数转换为字符串,然后猜测其是否是 MD5 编码的数据

Example:

str.IsMD5Value("202cb962ac59075b964b07152d234b70") // truestr.IsMD5Value("123") // false

定义#

IsMD5Value(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsPasswordField#

详细描述#

IsPasswordField 尝试将传入的参数转换为字符串,然后猜测其是否是 password 字段

Example:

str.IsPasswordField("password") // truestr.IsPasswordField("pwd") // truestr.IsPasswordField("id") // false

定义#

IsPasswordField(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsPlainBase64Value#

详细描述#

IsPlainBase64Value 尝试将传入的参数转换为字符串,然后猜测其是否是 Base64 编码的数据,它相比于 IsBase64Value 多了一层判断,即判断 base64 解码后的数据是否为可见字符串

Example:

str.IsPlainBase64Value("MTI=") // truestr.IsPlainBase64Value("Aw==") // false

定义#

IsPlainBase64Value(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsRedirectParam#

详细描述#

IsRedirectParam 根据传入的参数名和参数值猜测是否为重定向参数

Example:

str.IsRedirectParam("to","http://www.yaklang.com") // true,因为参数值为完整的 URLstr.IsRedirectParam("target","/index.php") // true,因为参数值为一个 URL 路径而且参数名为常见的跳转的参数名str.IsRedirectParam("id", "1") // false

定义#

IsRedirectParam(key string, value string) bool

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsSQLColumnField#

详细描述#

IsSQLColumnField 尝试将传入的参数转换为字符串,然后猜测其是否是 SQL 查询字段

Example:

str.IsSQLColumnField("sort") // truestr.IsSQLColumnField("order") // truestr.IsSQLColumnField("id") // false

定义#

IsSQLColumnField(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsSensitiveJson#

详细描述#

IsSensitiveJson 尝试将传入的参数转换为字符串,然后猜测其是否为敏感的 JSON 数据

Example:

str.IsSensitiveJson(`{"password":"123456"}`) // truestr.IsSensitiveJson(`{"uid": 10086}`) // truestr.IsSensitiveJson(`{"id": 1}`) // false

定义#

IsSensitiveJson(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsSensitiveTokenField#

详细描述#

IsSensitiveTokenField 尝试将传入的参数转换为字符串,然后猜测其是否是 token 字段

Example:

str.IsSensitiveTokenField("token") // truestr.IsSensitiveTokenField("access_token") // truestr.IsSensitiveTokenField("id") // false

定义#

IsSensitiveTokenField(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsServerError#

详细描述#

IsServerError 猜测传入的参数是否为服务器错误

Example:

str.IsServerError(`Fatal error: Uncaught Error: Call to undefined function sum() in F:\xampp\htdocs\test.php:7 Stack trace: #0 {main} thrown in <path> on line 7`) // true,这是PHP报错信息

定义#

IsServerError(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsSha256Value#

详细描述#

IsSha256Value 尝试将传入的参数转换为字符串,然后猜测其是否是 SHA256 编码的数据

Example:

str.IsSha256Value("a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3") // truestr.IsSha256Value("123") // false

定义#

IsSha256Value(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsStrongPassword#

详细描述#

IsStrongPassword 判断字符串是否为强密码,强密码的定义为:长度大于8,同时包含特殊字符、小写字母、大写字母、数字

Example:

str.IsStrongPassword("12345678") // falsestr.IsStrongPassword("12345678a") // falsestr.IsStrongPassword("12345678aA") // falsestr.IsStrongPassword("12345678aA!") // true

定义#

IsStrongPassword(s string) bool

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsTLSServer#

详细描述#

IsTLSServer 尝试访问传入的host,然后判断其是否为 TLS 服务。第一个参数为 host,后面可以传入零个或多个参数,为代理地址

Example:

str.IsTLSServer("www.yaklang.com:443") // truestr.IsTLSServer("www.yaklang.com:80") // false

定义#

IsTLSServer(addr string, proxies ...string) bool

参数#

参数名参数类型参数解释
addrstring
proxies...string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsUrlParam#

详细描述#

IsUrlParam 根据传入的参数名和参数值猜测是否为 URL 参数

Example:

str.IsUrlParam("url","http://www.yaklang.com") // true,因为参数名为常见的 URL 参数名,且参数值为完整的URLstr.IsUrlParam("id","1") // false

定义#

IsUrlParam(key string, value string) bool

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsUrlPath#

详细描述#

根据 value 猜测是否是一个 url path

定义#

IsUrlPath(v any) bool

参数#

参数名参数类型参数解释
vany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsUsernameField#

详细描述#

IsUsernameField 尝试将传入的参数转换为字符串,然后猜测其是否是 username 字段

Example:

str.IsUsernameField("username") // truestr.IsUsernameField("user") // truestr.IsUsernameField("id") // false

定义#

IsUsernameField(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsXmlParam#

详细描述#

IsXmlParam 根据传入的参数名和参数值猜测是否为 XML 参数

Example:

str.IsXmlParam("xml","<xml></xml>") // true,因为参数名为常见的 XML 参数名,且参数值为 XML 格式的字符串str.IsXmlParam("X","<xml></xml>") // true,因为参数值为 XML 格式的字符串str.IsXmlParam("id","1") // false

定义#

IsXmlParam(key string, value string) bool

参数#

参数名参数类型参数解释
keystring
valuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsXmlRequest#

详细描述#

IsXmlRequest 猜测传入的参数是否为请求头是 XML 格式的原始 HTTP 请求报文

Example:

str.IsXmlRequest("POST / HTTP/1.1\r\nContent-Type: application/xml\r\n\r\n<xml></xml>") // truestr.IsXmlRequest("POST / HTTP/1.1\r\nContent-Type: text/html\r\n\r\n<html></html>") // false

定义#

IsXmlRequest(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

IsXmlValue#

详细描述#

IsXmlValue 尝试将传入的参数转换为字符串,然后猜测其是否是 XML 格式的数据

Example:

str.IsXmlValue("<xml></xml>") // truestr.IsXmlValue("<html></html>") // false

定义#

IsXmlValue(i any) bool

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

Join#

详细描述#

Join 将i中的元素用d连接,如果传入的参数不是字符串,会自动将其转为字符串,再将其用d连接。如果连接失败,则会返回i的字符串形式。

Example:

str.Join([]string{"hello", "yak"}, " ") // hello yakstr.Join([]int{1, 2, 3}, " ") // 1 2 3

定义#

Join(i any, d any) (defaultResult string)

参数#

参数名参数类型参数解释
iany
dany

返回值#

返回值(顺序)返回值类型返回值解释
defaultResultstring

JsonToMap#

详细描述#

JsonToMap 将 json 字符串 line 解析为 map

Example:

str.JsonToMap(`{"a":1,"b":2}`) // map[a:1 b:2]

定义#

JsonToMap(line string) map[string]string

参数#

参数名参数类型参数解释
linestring

返回值#

返回值(顺序)返回值类型返回值解释
r1map[string]string

JsonToMapList#

详细描述#

JsonToMapList 将 json 字符串 line 解析为 map 列表

Example:

str.JsonToMapList(`{"a":1,"b":2} {"c":3, "d":4}`) // [map[a:1 b:2] map[c:3 d:4]]

定义#

JsonToMapList(line string) []map[string]string

参数#

参数名参数类型参数解释
linestring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]map[string]string

LastIndex#

详细描述#

LastIndex 返回字符串s中substr最后一次出现的位置的索引,如果字符串中不存在substr,则返回-1

Example:

str.LastIndex("hello yak", "l") // 3str.LastIndex("hello yak", "m") // -1

定义#

LastIndex(s string, substr string) int

参数#

参数名参数类型参数解释
sstring
substrstring

返回值#

返回值(顺序)返回值类型返回值解释
r1int

LastIndexAny#

详细描述#

LastIndexAny 返回字符串s中chars任意字符最后一次出现的位置的索引,如果字符串中不存在chars,则返回-1

Example:

str.LastIndexAny("hello yak", "ly") // 6str.LastIndexAny("hello yak", "m") // -1

定义#

LastIndexAny(s string, chars string) int

参数#

参数名参数类型参数解释
sstring
charsstring

返回值#

返回值(顺序)返回值类型返回值解释
r1int

LastIndexByte#

详细描述#

LastIndexByte 返回字符串s中最后一个等于c的字符的索引,如果字符串中不存在c,则返回-1

Example:

str.LastIndexByte("hello yak", 'l') // 3str.LastIndexByte("hello yak", 'm') // -1

定义#

LastIndexByte(s string, c byte) int

参数#

参数名参数类型参数解释
sstring
cbyte

返回值#

返回值(顺序)返回值类型返回值解释
r1int

LowerAndTrimSpace#

详细描述#

LowerAndTrimSpace 将字符串raw转换为小写并去除前后空白字符

Example:

str.LowerAndTrimSpace("  Hello  ") // "hello"

定义#

LowerAndTrimSpace(raw string) string

参数#

参数名参数类型参数解释
rawstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

MatchAllOfGlob#

详细描述#

MatchAllOfGlob 尝试将 i 转换为字符串,然后使用 glob 匹配模式匹配,如果所有的glob模式都匹配成功,则返回 true,否则返回 false

Example:

str.MatchAllOfGlob("abc", "a*", "?b?", "[a-z]?c") // true

定义#

MatchAllOfGlob(i any, re ...string) bool

参数#

参数名参数类型参数解释
iany
re...string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

MatchAllOfRegexp#

详细描述#

MatchAllOfRegexp 尝试将 i 转换为字符串,然后使用正则表达式匹配,如果所有的正则表达式都匹配成功,则返回 true,否则返回 false

Example:

str.MatchAllOfRegexp("abc", "a.+", ".?b.?", "\\w{2}c") // true

定义#

MatchAllOfRegexp(i any, re ...string) bool

参数#

参数名参数类型参数解释
iany
re...string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

MatchAllOfSubString#

详细描述#

MatchAllOfSubString 尝试将 i 转换为字符串,然后判断所有子串 subStr 是否都存在于 i 中,如果都存在则返回 true,否则返回 false,此函数忽略大小写

Example:

str.MatchAllOfSubString("abc", "a", "b", "c") // true

定义#

MatchAllOfSubString(i any, subStr ...string) bool

参数#

参数名参数类型参数解释
iany
subStr...string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

MatchAnyOfGlob#

详细描述#

MatchAnyOfGlob 尝试将 i 转换为字符串,然后使用 glob 匹配模式匹配,如果任意一个glob模式匹配成功,则返回 true,否则返回 false

Example:

str.MatchAnyOfGlob("abc", "a*", "??b", "[^a-z]?c") // true

定义#

MatchAnyOfGlob(i any, re ...string) bool

参数#

参数名参数类型参数解释
iany
re...string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

MatchAnyOfRegexp#

详细描述#

MatchAnyOfRegexp 尝试将 i 转换为字符串,然后使用正则表达式匹配,如果任意一个正则表达式匹配成功,则返回 true,否则返回 false

Example:

str.MatchAnyOfRegexp("abc", "a.+", "Ab.?", ".?bC") // true

定义#

MatchAnyOfRegexp(i any, re ...string) bool

参数#

参数名参数类型参数解释
iany
re...string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

MatchAnyOfSubString#

详细描述#

MatchAnyOfSubString 尝试将 i 转换为字符串,然后判断是否有任意子串 subStr 存在于 i 中,如果有其中一个子串存在于 i 中则返回 true,否则返回 false,此函数忽略大小写

Example:

str.MatchAnyOfSubString("abc", "a", "z", "x") // true

定义#

MatchAnyOfSubString(i any, subStr ...string) bool

参数#

参数名参数类型参数解释
iany
subStr...string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

MergeUrlFromHTTPRequest#

详细描述#

MergeUrlFromHTTPRequest 将传入的 target 与 原始 HTTP 请求报文中的 URL 进行合并,并返回合并后的 URL

Example:

url = str.MergeUrlFromHTTPRequest(b"GET /z HTTP/1.1\r\nHost: www.yaklang.com\r\n\r\n", "/a/b", true) // url = "https://www.yaklang.com/z/a/b"

定义#

MergeUrlFromHTTPRequest(rawRequest []byte, target string, isHttps bool) (newURL string)

参数#

参数名参数类型参数解释
rawRequest[]byte
targetstring
isHttpsbool

返回值#

返回值(顺序)返回值类型返回值解释
newURLstring

NewFilter#

详细描述#

NewFilter 创建一个默认的字符串布谷鸟过滤器,布谷鸟过滤器用于判断一个元素是否在一个集合中,它存在极低的假阳性(即说存在的元素实际上不存在),通常这个集合中的元素数量非常大才会使用布谷鸟过滤器。

Example:

f = str.NewFilter()f.Insert("hello")f.Exist("hello") // true

定义#

NewFilter() *StringFilter

返回值#

返回值(顺序)返回值类型返回值解释
r1*StringFilter

NewReader#

详细描述#

NewReader returns a new [Reader] reading from s. It is similar to [bytes.NewBufferString] but more efficient and non-writable.

定义#

NewReader(s string) *Reader

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*Reader

ParamsGetOr#

详细描述#

ParamsGetOr 从 map 中获取 key 对应的值,如果不存在则返回 defaultValue

Example:

str.ParamsGetOr({"a": "1"}, "a", "2") // 1str.ParamsGetOr({"a": "1"}, "b", "2") // 2

定义#

ParamsGetOr(i map[string]string, key string, defaultValue string) string

参数#

参数名参数类型参数解释
imap[string]string
keystring
defaultValuestring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ParseBytesToHTTPRequest#

详细描述#

ParseBytesToHTTPRequest 将字节数组解析为 HTTP 请求

Example:

req, err := str.ParseBytesToHTTPRequest(b"GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")

定义#

ParseBytesToHTTPRequest(raw []byte) (reqInst *http.Request, err error)

参数#

参数名参数类型参数解释
raw[]byte

返回值#

返回值(顺序)返回值类型返回值解释
reqInst*http.Request
errerror

ParseBytesToHTTPResponse#

详细描述#

ParseBytesToHTTPResponse 将字节数组解析为 HTTP 响应

Example:

res, err := str.ParseBytesToHTTPResponse(b"HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nok")

定义#

ParseBytesToHTTPResponse(res []byte) (rspInst *http.Response, err error)

参数#

参数名参数类型参数解释
res[]byte

返回值#

返回值(顺序)返回值类型返回值解释
rspInst*http.Response
errerror

ParseStringToCClassHosts#

详细描述#

ParseStringToCClassHosts 尝试从给定的字符串中解析Host,再将其转为 C 类网段,用,分隔

Example:

str.ParseStringToCClassHosts("192.168.0.1-255") // 192.168.0.0/24

定义#

ParseStringToCClassHosts(targets string) string

参数#

参数名参数类型参数解释
targetsstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ParseStringToHTTPRequest#

详细描述#

ParseStringToHTTPRequest 将字符串解析为 HTTP 请求

Example:

req, err = str.ParseStringToHTTPRequest("GET / HTTP/1.1\r\nHost: example.com\r\n\r\n")

定义#

ParseStringToHTTPRequest(raw string) (*http.Request, error)

参数#

参数名参数类型参数解释
rawstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*http.Request
r2error

ParseStringToHTTPResponse#

详细描述#

ParseStringToHTTPResponse 将字符串解析为 HTTP 响应

Example:

res, err := str.ParseStringToHTTPResponse("HTTP/1.1 200 OK\r\nContent-Length: 2\r\n\r\nok")

定义#

ParseStringToHTTPResponse(res string) (*http.Response, error)

参数#

参数名参数类型参数解释
resstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*http.Response
r2error

ParseStringToHostPort#

详细描述#

ParseStringToHostPort 尝试从字符串中解析出host和port,并与错误一起返回

Example:

host, port, err = str.ParseStringToHostPort("127.0.0.1:8888") // host = "127.0.0.1", port = 8888, err = nilhost, port, err = str.ParseStringToHostPort("https://example.com") // host = "example.com", port = 443, err = nilhost, port, err = str.ParseStringToHostPort("Hello Yak") // host = "", port = 0, err = error("unknown port for [Hello Yak]")

定义#

ParseStringToHostPort(raw string) (host string, port int, err error)

参数#

参数名参数类型参数解释
rawstring

返回值#

返回值(顺序)返回值类型返回值解释
hoststring
portint
errerror

ParseStringToHosts#

详细描述#

ParseStringToHosts 将字符串解析成 Host 列表, Host 可以以逗号、换行分隔,并且会解析 CIDR 网段

Example:

str.ParseStringToHosts("192.168.0.1/32,127.0.0.1") // ["192.168.0.1", "127.0.0.1"]

定义#

ParseStringToHosts(raw string) []string

参数#

参数名参数类型参数解释
rawstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

ParseStringToLines#

详细描述#

ParseStringToLines 将字符串按换行符(\n)分割成字符串数组,并去除BOM头和空行

Example:

str.ParseStringToLines("Hello World\nHello Yak") // ["Hello World", "Hello Yak"]

定义#

ParseStringToLines(raw string) []string

参数#

参数名参数类型参数解释
rawstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

ParseStringToPorts#

详细描述#

ParseStringToPorts 将字符串解析成 Port 列表, Port 可以以逗号分隔,并且会解析-分隔的范围

Example:

str.ParseStringToPorts("10086-10088,23333") // [10086, 10087, 10088, 23333]

定义#

ParseStringToPorts(ports string) []int

参数#

参数名参数类型参数解释
portsstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]int

ParseStringToUrls#

详细描述#

ParseStringToUrls 尝试从给定的字符串(ip,域名)中解析出 URL 列表,补全协议和端口

Example:

str.ParseStringToUrls("yaklang.com:443", "https://yaklang.io") // [https://yaklang.com, https://yaklang.io]

定义#

ParseStringToUrls(targets ...string) []string

参数#

参数名参数类型参数解释
targets...string

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

ParseStringToUrlsWith3W#

详细描述#

ParseStringToUrlsWith3W 尝试从给定的字符串(ip,域名)中解析出 URL 列表,补全协议和端口,还会补全域名前的 www 前缀

Example:

str.ParseStringToUrlsWith3W("yaklang.com:443", "https://yaklang.io") // [https://yaklang.com, https://www.yaklang.com, https://yaklang.io, https://www.yaklang.io]

定义#

ParseStringToUrlsWith3W(sub ...string) []string

参数#

参数名参数类型参数解释
sub...string

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

ParseStringUrlToUrlInstance#

详细描述#

ParseStringUrlToUrlInstance 将字符串 url 解析为 URL 结构体并返回错误

Example:

str.ParseStringUrlToUrlInstance("https://yaklang.com/abc?a=1")

定义#

ParseStringUrlToUrlInstance(s string) (*url.URL, error)

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1*url.URL
r2error

ParseStringUrlToWebsiteRootPath#

详细描述#

ParseStringUrlToWebsiteRootPath 将字符串 url 解析为其根路径的URL

Example:

str.ParseStringUrlToWebsiteRootPath("https://yaklang.com/abc?a=1") // https://yaklang.com/

定义#

ParseStringUrlToWebsiteRootPath(url string) (newURL string)

参数#

参数名参数类型参数解释
urlstring

返回值#

返回值(顺序)返回值类型返回值解释
newURLstring

PathJoin#

详细描述#

PathJoin 将传入的文件路径进行拼接并返回

Example:

str.PathJoin("/var", "www", "html") // in *unix: "/var/www/html"    in Windows: \var\www\html

定义#

PathJoin(elem ...string) (newPath string)

参数#

参数名参数类型参数解释
elem...string

返回值#

返回值(顺序)返回值类型返回值解释
newPathstring

RandSecret#

详细描述#

RandSecret 返回在所有可见ascii字符表中随机挑选 n 个字符组成的密码字符串,这个密码经过str.IsStrongPassword验证,即为强密码

Example:

str.RandSecret(10)

定义#

RandSecret(n int) string

参数#

参数名参数类型参数解释
nint

返回值#

返回值(顺序)返回值类型返回值解释
r1string

RandStr#

详细描述#

RandStringBytes 返回在大小写字母表中随机挑选 n 个字符组成的字符串

Example:

str.RandStr(10)

定义#

RandStr(n int) string

参数#

参数名参数类型参数解释
nint

返回值#

返回值(顺序)返回值类型返回值解释
r1string

Random#

详细描述#

RandomUpperAndLower 返回一个随机大小写的字符串

Example:

str.RandomUpperAndLower("target") // TArGeT

定义#

Random(s string) string

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

RegexpMatch#

详细描述#

RegexpMatch 使用正则尝试匹配字符串,如果匹配成功返回 true,否则返回 false

Example:

str.RegexpMatch("^[a-z]+$", "abc") // true

定义#

RegexpMatch(pattern string, s any) bool

参数#

参数名参数类型参数解释
patternstring
sany

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

RemoveDuplicatePorts#

详细描述#

RemoveDuplicatePorts 解析两个字符串形式的端口列表,并使用布谷鸟过滤器进行去重。

这个函数首先创建一个布谷鸟过滤器,然后将两个输入字符串解析为端口列表。

接着,它遍历这两个列表,将每个端口添加到布谷鸟过滤器中,如果这个端口之前没有被添加过,

那么它也会被添加到结果列表中。最后,函数返回结果列表,其中包含两个输入字符串中的所有唯一端口。

Example:

RemoveDuplicatePorts("10086-10088,23333", "10086,10089,23333") // [10086, 10087, 10088, 23333, 10089]

定义#

RemoveDuplicatePorts(ports1 string, ports2 string) []int

参数#

参数名参数类型参数解释
ports1string
ports2string

返回值#

返回值(顺序)返回值类型返回值解释
r1[]int

RemoveRepeat#

详细描述#

RemoveRepeat 移除字符串切片slc中的重复元素

Example:

str.RemoveRepeat(["hello", "yak", "hello"]) // ["hello", "yak"]

定义#

RemoveRepeat(slc []string) []string

参数#

参数名参数类型参数解释
slc[]string

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

Repeat#

详细描述#

Repeat 返回将字符串s重复count次的字符串

Example:

str.Repeat("hello", 3) // hellohellohello

定义#

Repeat(s string, count int) string

参数#

参数名参数类型参数解释
sstring
countint

返回值#

返回值(顺序)返回值类型返回值解释
r1string

Replace#

详细描述#

Replace 返回将字符串s中前n个old字符串替换为new字符串的字符串

Example:

str.Replace("hello yak", "l", "L", 1) // heLlo yak

定义#

Replace(s string, old string, new string, n int) string

参数#

参数名参数类型参数解释
sstring
oldstring
newstring
nint

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ReplaceAll#

详细描述#

ReplaceAll 返回将字符串s中所有old字符串替换为new字符串的字符串

Example:

str.ReplaceAll("hello yak", "yak", "yakit") // hello yakit

定义#

ReplaceAll(s string, old string, new string) string

参数#

参数名参数类型参数解释
sstring
oldstring
newstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ReplaceHTTPPacketBody#

详细描述#

ReplaceBody 将原始 HTTP 请求报文中的 body 替换为指定的 body,并指定是否为 chunked,返回新的 HTTP 请求报文

Example:

poc.ReplaceBody(`POST / HTTP/1.1Host: example.comContent-Length: 11
hello world`, "hello yak", false)

定义#

ReplaceHTTPPacketBody(raw []byte, body []byte, chunk bool) (newHTTPRequest []byte)

参数#

参数名参数类型参数解释
raw[]byte
body[]byte
chunkbool

返回值#

返回值(顺序)返回值类型返回值解释
newHTTPRequest[]byte

Split#

详细描述#

Split 将字符串s按照sep分割成字符串切片

Example:

str.Split("Hello Yak", " ") // [Hello", "Yak"]

定义#

Split(s string, sep string) []string

参数#

参数名参数类型参数解释
sstring
sepstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

SplitAfter#

详细描述#

SplitAfter 将字符串s按照sep分割成字符串切片,但是每个元素都会保留sep

Example:

str.SplitAfter("Hello-Yak", "-") // [Hello-", "Yak"]

定义#

SplitAfter(s string, sep string) []string

参数#

参数名参数类型参数解释
sstring
sepstring

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

SplitAfterN#

详细描述#

SplitAfterN 将字符串s按照sep分割成字符串切片,但是每个元素都会保留sep,最多分为n个元素

Example:

str.SplitAfterN("Hello-Yak-and-World", "-", 2) // [Hello-", "Yak-and-World"]

定义#

SplitAfterN(s string, sep string, n int) []string

参数#

参数名参数类型参数解释
sstring
sepstring
nint

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

SplitAndTrim#

详细描述#

SplitAndTrim 将字符串s按照sep分割成字符串切片,并且去除每个字符串的前后空白字符

Example:

str.SplitAndTrim(" hello yak ", " ") // ["hello", "yak"]

定义#

SplitAndTrim(Raw string, sep string) (targets []string)

参数#

参数名参数类型参数解释
Rawstring
sepstring

返回值#

返回值(顺序)返回值类型返回值解释
targets[]string

SplitHTTPHeadersAndBodyFromPacket#

详细描述#

SplitHTTPHeadersAndBodyFromPacket 将传入的 HTTP 报文分割为 headers 和 body,如果传入了hook,则会在每次读取到一行 header 时调用 hook

Example:

headers, body = str.SplitHTTPHeadersAndBodyFromPacket(b"GET / HTTP/1.1\r\nHost: www.yaklang.com\r\n\r\n")

定义#

SplitHTTPHeadersAndBodyFromPacket(raw []byte, hook ...func(line string)) (headers string, body []byte)

参数#

参数名参数类型参数解释
raw[]byte
hook...func(line string)

返回值#

返回值(顺序)返回值类型返回值解释
headersstring
body[]byte

SplitHostsToPrivateAndPublic#

详细描述#

SplitHostsToPrivateAndPublic 将 hosts 按照私有 IP 和公有 IP 分开

Example:

str.SplitHostsToPrivateAndPublic("127.0.0.1", "8.8.8.8", "10.0.0.1") // ["127.0.0.1", "10.0.0.1"], ["8.8.8.8"]

定义#

SplitHostsToPrivateAndPublic(hosts ...string) (privs []string, pub []string)

参数#

参数名参数类型参数解释
hosts...string

返回值#

返回值(顺序)返回值类型返回值解释
privs[]string
pub[]string

SplitN#

详细描述#

SplitN 将字符串s按照sep分割成字符串切片,最多分为n个元素

Example:

str.SplitN("Hello-Yak-and-World", "-", 2) // [Hello", "Yak-and-World"]

定义#

SplitN(s string, sep string, n int) []string

参数#

参数名参数类型参数解释
sstring
sepstring
nint

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

StartsWith#

详细描述#

StartsWith / HasPrefix 判断字符串s是否以prefix开头

Example:

str.StartsWith("Hello Yak", "Hello") // truestr.StartsWith("Hello Yak", "Yak") // false

定义#

StartsWith(s string, prefix string) bool

参数#

参数名参数类型参数解释
sstring
prefixstring

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

StringContainsAnyOfSubString#

详细描述#

StringContainsAnyOfSubString 判断字符串s中是否包含subs中的任意一个子串

Example:

str.StringContainsAnyOfSubString("hello yak", ["yak", "world"]) // true

定义#

StringContainsAnyOfSubString(s string, subs []string) bool

参数#

参数名参数类型参数解释
sstring
subs[]string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

StringSliceContains#

详细描述#

StringSliceContains 判断字符串切片s中是否包含raw,对于非字符串的切片,会尝试将其元素转换为字符串再判断是否包含

Example:

str.StringSliceContains(["hello", "yak"], "yak") // truestr.StringSliceContains([1, 2, 3], "4") // false

定义#

StringSliceContains(s any, raw string) (result bool)

参数#

参数名参数类型参数解释
sany
rawstring

返回值#

返回值(顺序)返回值类型返回值解释
resultbool

StringSliceContainsAll#

详细描述#

StringSliceContainsAll 判断字符串切片s中是否完全包含elements中的所有元素,对于非字符串的切片,会尝试将其元素转换为字符串再判断是否包含

Example:

str.StringSliceContainsAll(["hello", "yak"], "hello", "yak") // truestr.StringSliceContainsAll(["hello", "yak"], "hello", "yak", "world") // false

定义#

StringSliceContainsAll(s []string, elements ...string) bool

参数#

参数名参数类型参数解释
s[]string
elements...string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

Subtract#

详细描述#

Subtract 返回两个字符串切片的差集

Example:

str.Subtract(["1", "2", "3"], ["3", "4", "5"]) // ["1", "2"]

定义#

Subtract(x []string, y []string) []string

参数#

参数名参数类型参数解释
x[]string
y[]string

返回值#

返回值(顺序)返回值类型返回值解释
r1[]string

Title#

详细描述#

Title 返回字符串s的标题化版本,即所有单词的首字母都是大写的

Example:

str.Title("hello yak") // Hello Yak

定义#

Title(s string) string

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ToJsonIndentStr#

详细描述#

ToJsonIndentStr 将v转换为格式化的JSON字符串并返回,如果转换失败,则返回空字符串

Example:

str.ToJsonIndentStr({"hello":"yak"}) // {"hello": "yak"}

定义#

ToJsonIndentStr(d any) string

参数#

参数名参数类型参数解释
dany

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ToLower#

详细描述#

ToLower 返回字符串s的小写形式

Example:

str.ToLower("HELLO YAK") // hello yak

定义#

ToLower(s string) string

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ToLowerSpecial#

详细描述#

ToLowerSpecial returns a copy of the string s with all Unicode letters mapped to their lower case using the case mapping specified by c.

定义#

ToLowerSpecial(c unicode.SpecialCase, s string) string

参数#

参数名参数类型参数解释
cunicode.SpecialCase
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ToStringSlice#

详细描述#

ToStringSlice 将任意类型的数据转换为字符串切片

Example:

str.ToStringSlice("hello") // ["hello"]str.ToStringSlice([1, 2]) // ["1", "2"]

定义#

ToStringSlice(i any) (result []string)

参数#

参数名参数类型参数解释
iany

返回值#

返回值(顺序)返回值类型返回值解释
result[]string

ToTitle#

详细描述#

ToTitle 返回字符串s的标题化版本,其中所有Unicode字母都会被转换为其大写

Example:

str.ToTitle("hello yak") // HELLO YAK

定义#

ToTitle(s string) string

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ToTitleSpecial#

详细描述#

ToTitleSpecial returns a copy of the string s with all Unicode letters mapped to their Unicode title case, giving priority to the special casing rules.

定义#

ToTitleSpecial(c unicode.SpecialCase, s string) string

参数#

参数名参数类型参数解释
cunicode.SpecialCase
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ToUpper#

详细描述#

ToUpper 返回字符串s的大写形式

Example:

str.ToUpper("hello yak") // HELLO YAK

定义#

ToUpper(s string) string

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ToUpperSpecial#

详细描述#

ToUpperSpecial returns a copy of the string s with all Unicode letters mapped to their upper case using the case mapping specified by c.

定义#

ToUpperSpecial(c unicode.SpecialCase, s string) string

参数#

参数名参数类型参数解释
cunicode.SpecialCase
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

ToValidUTF8#

详细描述#

ToValidUTF8 返回将字符串s中无效的UTF-8编码替换为replacement的字符串

Example:


str.ToValidUTF8("hello yak", "?") // hello yak

定义#

ToValidUTF8(s string, replacement string) string

参数#

参数名参数类型参数解释
sstring
replacementstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

Trim#

详细描述#

Trim 返回将字符串s两侧所有包含cutset字符串中的字符都去掉的字符串

Example:

str.Trim("Hello Yak", "Hk") // ello Yastr.Trim("HelloYakHello", "Hello") // Yak

定义#

Trim(s string, cutset string) string

参数#

参数名参数类型参数解释
sstring
cutsetstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

TrimLeft#

详细描述#

TrimLeft 返回将字符串s左侧所有包含cutset字符串中的字符都去掉的字符串

Example:

str.TrimLeft("Hello Yak", "H") // ello Yakstr.TrimLeft("HelloYak", "Hello") // Yak

定义#

TrimLeft(s string, cutset string) string

参数#

参数名参数类型参数解释
sstring
cutsetstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

TrimPrefix#

详细描述#

TrimPrefix 返回将字符串s前缀prefix去掉的字符串

Example:

str.TrimPrefix("Hello Yak", "Hello") //  Yakstr.TrimPrefix("HelloYak", "Hello") // Yak

定义#

TrimPrefix(s string, prefix string) string

参数#

参数名参数类型参数解释
sstring
prefixstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

TrimRight#

详细描述#

TrimRight 返回将字符串s右侧所有包含cutset字符串中的字符都去掉的字符串

Example:

str.TrimRight("Hello Yak", "k") // Hello Yastr.TrimRight("HelloYak", "Yak") // Hello

定义#

TrimRight(s string, cutset string) string

参数#

参数名参数类型参数解释
sstring
cutsetstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

TrimSpace#

详细描述#

TrimSpace 返回将字符串s两侧所有的空白字符都去掉的字符串

Example:

str.TrimSpace(" \t\n Hello Yak \n\t\r\n") // Hello Yak

定义#

TrimSpace(s string) string

参数#

参数名参数类型参数解释
sstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

TrimSuffix#

详细描述#

TrimSuffix 返回将字符串s后缀suffix去掉的字符串

Example:

str.TrimSuffix("Hello Yak", "ak") // Hello Ystr.TrimSuffix("HelloYak", "Yak") // Hello

定义#

TrimSuffix(s string, suffix string) string

参数#

参数名参数类型参数解释
sstring
suffixstring

返回值#

返回值(顺序)返回值类型返回值解释
r1string

UrlJoin#

详细描述#

UrlJoin 将 字符串 origin 和 字符串数组 paths 拼接成一个新的 URL 字符串,并返回错误

Example:

newURL, err = str.UrlJoin("https://yaklang.com", "asd", "qwe") // newURL = "https://yaklang.com/asd/qwe", err = nilnewURL, err = str.UrlJoin("https://yaklang.com/zxc", "/asd", "qwe") // newURL = "https://yaklang.com/asd/qwe", err = nil

定义#

UrlJoin(origin string, paths ...string) (newURL string, err error)

参数#

参数名参数类型参数解释
originstring
paths...string

返回值#

返回值(顺序)返回值类型返回值解释
newURLstring
errerror

VersionCompare#

详细描述#

VersionCompare 泛用形的版本比较,传入(p1,p2 string), p1>p2返回1,nil, p1<p2返回-1,nil, p1==p2返回0,nil, 比较失败返回 -2,err

定义#

VersionCompare(v1 string, v2 string) (int, error)

参数#

参数名参数类型参数解释
v1string
v2string

返回值#

返回值(顺序)返回值类型返回值解释
r1int
r2error

VersionEqual#

详细描述#

VersionEqual 使用版本比较算法比较版本 v1 与版本 v2,如果 v1 等于 v2 返回 true,否则返回 false

Example:

str.VersionEqual("3.0", "3.0") // truestr.VersionEqual("3.0", "3.0a") // false

定义#

VersionEqual(v1 string, v2 string) bool

参数#

参数名参数类型参数解释
v1string
v2string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

VersionGreater#

详细描述#

VersionGreater 使用版本比较算法比较版本 v1 与版本 v2,如果 v1 大于 v2 返回 true,否则返回 false

Example:

str.VersionGreater("1.0.0", "0.9.9") // truestr.VersionGreater("3.0", "2.8.8alpha") // true

定义#

VersionGreater(v1 string, v2 string) bool

参数#

参数名参数类型参数解释
v1string
v2string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

VersionGreaterEqual#

详细描述#

VersionGreaterEqual 使用版本比较算法比较版本 v1 与版本 v2,如果 v1 大于等于 v2 返回 true,否则返回 false

Example:

str.VersionGreaterEqual("1.0.0", "0.9.9") // truestr.VersionGreaterEqual("3.0", "3.0") // truestr.VersionGreaterEqual("3.0", "3.0a") // false

定义#

VersionGreaterEqual(v1 string, v2 string) bool

参数#

参数名参数类型参数解释
v1string
v2string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

VersionLess#

详细描述#

VersionLess 使用版本比较算法比较版本 v1 与版本 v2,如果 v1 小于 v2 返回 true,否则返回 false

Example:

str.VersionLess("0.9.9", "1.0.0") // truestr.VersionLess("3.0", "3.0a") // true

定义#

VersionLess(v1 string, v2 string) bool

参数#

参数名参数类型参数解释
v1string
v2string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

VersionLessEqual#

详细描述#

VersionLessEqual 使用版本比较算法比较版本 v1 与版本 v2,如果 v1 小于等于 v2 返回 true,否则返回 false

Example:

str.VersionLessEqual("0.9.9", "1.0.0") // truestr.VersionLessEqual("3.0", "3.0") // truestr.VersionLessEqual("3.0a", "3.0") // false

定义#

VersionLessEqual(v1 string, v2 string) bool

参数#

参数名参数类型参数解释
v1string
v2string

返回值#

返回值(顺序)返回值类型返回值解释
r1bool

f#

详细描述#

f 用于对字符串进行格式化

Example:


str.f("hello %s", "yak") // hello yak

定义#

f(f string, items ...any) string

参数#

参数名参数类型参数解释
fstring
items...any

返回值#

返回值(顺序)返回值类型返回值解释
r1string