Documentation ¶
Overview ¶
Package gstr 提供了用于处理字符串的函数。
Index ¶
- Constants
- func Explode别名(delimiter, str string) []string
- func Implode别名(glue string, pieces []string) string
- func Levenshtein(str1, str2 string, costIns, costRep, costDel int) int
- func Map替换(文本 string, 用作替换的Map map[string]string) string
- func Map替换并忽略大小写(文本 string, map数组 map[string]string) string
- func Ord(char string) int
- func SubStrFromEx别名(str string, need string) (substr string)
- func SubStrFrom别名(str string, need string) (substr string)
- func X倒找(文本, 查找文本 string, 可选查找起点 ...int) int
- func X倒找Unicode(文本, 查找文本 string, 可选查找起点 ...int) int
- func X倒找并忽略大小写(文本, 查找文本 string, 可选查找起点 ...int) int
- func X倒找并忽略大小写Unicode(文本, 查找文本 string, 可选查找起点 ...int) int
- func X八进制到文本(文本 string) string
- func X分割(文本, 用作分割的文本 string) []string
- func X分割2份(待分割文本, 分隔符 string) (返回值1, 返回值2 string)
- func X分割2份并忽略空值(待分割文本, 分隔符 string) (返回值1, 返回值2 string)
- func X分割3份(待分割文本, 分隔符 string) (返回值1, 返回值2, 返回值3 string)
- func X分割3份并忽略空值(待分割文本, 分隔符 string) (返回值1, 返回值2, 返回值3 string)
- func X分割并忽略空值(文本, 用作分割的文本 string, characterMask ...string) []string
- func X到单词首字母大写(文本 string) string
- func X到大写(文本 string) string
- func X到小写(文本 string) string
- func X到首字母大写(文本 string) string
- func X到首字母小写(文本 string) string
- func X单词分割(文本 string) []string
- func X参数解析(文本 string) (map结果 map[string]interface{}, 错误 error)
- func X反转字符(文本 string) string
- func X取soundex码(文本 string) string
- func X取右边(文本 string, 欲寻找的文本 string) string
- func X取右边并倒找(文本 string, 欲寻找的文本 string) (文本结果 string)
- func X取右边并倒找与含关键字(文本 string, 欲寻找的文本 string) (文本结果 string)
- func X取右边并含关键字(文本 string, 欲寻找的文本 string) string
- func X取字符长度(文本 string) int
- func X取左边(文本 string, 欲寻找的文本 string) string
- func X取左边并含关键字(文本 string, 欲寻找的文本 string) string
- func X取相似度(文本1, 文本2 string, 百分比 *float64) int
- func X命名转换(待转换文本 string, 类型 CaseType) string
- func X命名转换到全小写蛇形(待转换文本 string) string
- func X命名转换到全小写蛇形2(待转换文本 string, 可选连接符 ...string) string
- func X命名转换到大写蛇形(待转换文本 string) string
- func X命名转换到大写驼峰短横线(待转换文本 string) string
- func X命名转换到小写短横线(待转换文本 string) string
- func X命名转换到首字母大写驼峰(待转换文本 string) string
- func X命名转换到首字母小写驼峰(待转换文本 string) string
- func X命名转换按符号(待转换文本 string, 连接符号 byte) string
- func X命名转换按符号与大小写(待转换文本 string, 连接符号 uint8, 是否全大写 bool) string
- func X开头判断(文本, 开头文本 string) bool
- func X按字符数量换行(文本 string, 字符数 int, 换行符 string) string
- func X按长度取左边并带前缀(文本 string, 长度 int, 后缀 ...string) string
- func X按长度取左边并带前缀Unicode(文本 string, 长度 int, 后缀 ...string) string
- func X按长度取文本(文本 string, 起始位置 int, 长度 ...int) (返回 string)
- func X按长度取文本Unicode(文本 string, 起始位置 int, 长度 ...int) (返回 string)
- func X数组加前缀(数组 []string, 前缀 string)
- func X数组是否存在(数组 []string, 待查找值 string) bool
- func X数组替换(文本 string, 数组 []string) string
- func X数组替换并忽略大小写(文本 string, 数组 []string) string
- func X数组查找(数组 []string, 待查找值 string) int
- func X整数到ascii(整数 int) string
- func X是否为子域名(子域名 string, 主域名 string) bool
- func X是否为数字(值 string) bool
- func X是否包含(文本, 欲寻找的文本 string) bool
- func X是否包含Any(文本, 欲寻找的文本 string) bool
- func X是否包含并忽略大小写(文本, 欲寻找的文本 string) bool
- func X是否大写字符(字符 byte) bool
- func X是否小写字符(字符 byte) bool
- func X替换(文本, 替换文本, 用作替换文本 string, 替换次数 ...int) string
- func X替换中间字符(文本 string, 替换百分比 int, 替换符 string) string
- func X替换并忽略大小写(文本, 替换文本, 用作替换文本 string, 替换次数 ...int) string
- func X替换换行符(文本 string, 是否html ...bool) string
- func X末尾判断(文本, 末尾文本 string) bool
- func X查找(文本, 查找文本 string, 可选查找起点 ...int) int
- func X查找Unicode(文本, 查找文本 string, 可选查找起点 ...int) int
- func X查找并忽略大小写(文本, 查找文本 string, 可选查找起点 ...int) int
- func X查找并忽略大小写Unicode(文本, 查找文本 string, 可选查找起点 ...int) int
- func X格式化数值(数值 float64, 小数点个数 int, ...) string
- func X版本号是否有效(版本号 string) bool
- func X版本号比较GNU格式(a, b string) int
- func X版本号比较GO格式(a, b string) int
- func X生成重复文本(文本 string, 重复次数 int) string
- func X相等比较并忽略大小写(a, b string) bool
- func X统计unicode字符数(文本 string, 是否计算空格 ...bool) map[string]int
- func X统计单词数(文本 string) map[string]int
- func X统计次数(文本, 子文本 string) int
- func X统计次数并忽略大小写(文本, 子文本 string) int
- func X转义(文本 string) string
- func X转义并按字符(文本 string, 可选转义字符 ...string) string
- func X转义还原(文本 string) string
- func X过滤尾字符(文本 string, 过滤符号 string, 可选过滤次数 ...int) string
- func X过滤尾字符并含空白(文本 string, 可选过滤符号 ...string) string
- func X过滤所有字符并含空白(文本 string, 可选过滤符号 ...string) string
- func X过滤首字符(文本 string, 过滤符号 string, 可选过滤次数 ...int) string
- func X过滤首字符并含空白(文本 string, 可选过滤符号 ...string) string
- func X过滤首尾(文本 string, 过滤符号 string, 可选过滤次数 ...int) string
- func X过滤首尾符并含空白(文本 string, 可选过滤符号 ...string) string
- func X连接(数组 []string, 连接符 string) string
- func X连接Any(数组 interface{}, 连接符 string) string
- func X长度分割(文本 string, 分割长度 int, 分割符 string) string
- func X随机打散字符(文本 string) string
- func X顺序比较(a, b string) int
- type CaseType
Examples ¶
Constants ¶
const (
// NotFoundIndex 是在搜索函数中未找到字符串时的位置索引。
NotFoundIndex = -1
)
Variables ¶
This section is empty.
Functions ¶
func Explode别名 ¶
Explode 将字符串 `str` 通过指定的分隔符 `delimiter` 进行拆分,结果存入数组中。 参考:http://php.net/manual/en/function.explode.php.
func Implode别名 ¶
Implode 函数通过字符串 `glue` 连接数组元素 `pieces`。 参考:http://php.net/manual/en/function.implode.php
func Levenshtein ¶
Levenshtein 计算两个字符串之间的 Levenshtein 距离。 costIns: 定义插入操作的成本。 costRep: 定义替换操作的成本。 costDel: 定义删除操作的成本。 参考:http://php.net/manual/en/function.levenshtein.php.
Example ¶
levenshtein
var ( str1 = "Hello World" str2 = "hallo World" costIns = 1 costRep = 1 costDel = 1 result = 文本类.Levenshtein(str1, str2, costIns, costRep, costDel) ) fmt.Println(result)
Output: 2
func Map替换并忽略大小写 ¶
ReplaceIByMap 返回 `origin` 的副本, 其中内容将以无序方式、不区分大小写地通过一个映射表进行替换。
func Ord ¶
Ord将字符串的第一个字节转换为0到255之间的值。
Example ¶
'103'是ASCII码中的字符'g'
var ( str = `goframe` result = 文本类.Ord(str) ) fmt.Println(result)
Output: 103
func SubStrFromEx别名 ¶
SubStrFromEx 从字符串 `str` 中返回从第一个出现且不包括 `need` 的子串到 `str` 结尾的部分。
func SubStrFrom别名 ¶
SubStrFrom 返回字符串 `str` 中从第一个出现并包含 `need` 的子串开始,直到 `str` 末尾的部分。
func X倒找Unicode ¶
PosRRune 类似于函数 PosR,但将 `haystack` 和 `needle` 视为 unicode 字符串。
func X倒找并忽略大小写 ¶
PosRI 函数返回从 `startOffset` 开始,在字符串 `haystack` 中最后一次出现子串 `needle` 的位置,该搜索过程不区分大小写。 若未找到,则返回 -1。
func X倒找并忽略大小写Unicode ¶
PosRIRune 类似于函数 PosRI,但将 `haystack` 和 `needle` 视为 unicode 字符串。
func X八进制到文本 ¶
OctStr converts string container octal string to its original string, for example, to Chinese string. Eg: `\346\200\241` -> 怡
func X分割2份并忽略空值 ¶
ListAndTrim2 使用`delimiter`分割并修剪`str`,然后将结果以两个部分的字符串形式返回。
func X分割3份并忽略空值 ¶
ListAndTrim3 以`delimiter`为分隔符对`str`进行分割并去除首尾空白字符,然后将结果返回为三个部分的字符串。
func X分割并忽略空值 ¶
SplitAndTrim通过字符串`delimiter`将字符串`str`分割成一个数组, 然后对数组中的每个元素调用Trim方法。它会忽略经过Trim处理后为空的元素。
func X参数解析 ¶
Parse 将字符串解析为 map[string]interface{} 类型。
v1=m&v2=n -> 解析得到的映射:map[v1:m v2:n] v[a]=m&v[b]=n -> 解析得到的映射:map[v:map[a:m b:n]] v[a][a]=m&v[a][b]=n -> 解析得到的映射:map[v:map[a:map[a:m b:n]]] v[]=m&v[]=n -> 解析得到的映射:map[v:[m n]] v[a][]=m&v[a][]=n -> 解析得到的映射:map[v:map[a:[m n]]] v[][]=m&v[][]=n -> 解析得到的映射:map[v:[map[]]] // 目前不支持嵌套切片 v=m&v[a]=n -> 报错 a .[[b=c -> 解析得到的映射:map[a___[b:c]] 注意,上述代码注释描述了一个将查询字符串形式的数据解析成 Go 语言中的 map 的功能。在处理嵌套结构时,它会根据键名包含的中括号 `[]` 和方括号 `[]` 来构建嵌套的 map 或 slice。不过需要注意的是,对于 "v[][]=m&v[][]=n" 这种情况,当前实现并不支持嵌套的 slice 结构。
func X取soundex码 ¶
Soundex 计算一个字符串的 soundex 码。 参见:http://php.net/manual/en/function.soundex.php.
func X取右边 ¶
StrEx 函数从 `haystack` 字符串中第一个不包含 `needle` 的位置开始,截取到 `haystack` 末尾的部分并返回。 示例:StrEx("12345", "3") => "45"
func X取右边并倒找与含关键字 ¶
SubStrFromR 返回字符串 `str` 从最后一个出现且包含 `need` 的子串开始,直到 `str` 结尾的部分。
func X取右边并含关键字 ¶
Str 函数返回从 `haystack` 字符串中第一个(包含)出现的 `needle` 字符串开始, 直至 `haystack` 结尾的部分。参考:http://php.net/manual/en/function.strstr.php。 示例:Str("12345", "3") => "345"
func X取左边 ¶
StrTillEx 从`haystack`字符串的起始位置截取,返回直到(但不包括)第一次出现`needle`子串的部分。 示例:StrTillEx("12345", "3") => "12"
func X取左边并含关键字 ¶
StrTill 函数返回从 `haystack` 字符串起始位置到(并包含) 第一个出现的 `needle` 子串为止的部分字符串。 示例:StrTill("12345", "3") => 返回结果为 "123"
func X取相似度 ¶
SimilarText 计算两个字符串之间的相似度。 参考:http://php.net/manual/en/function.similar-text.php.
func X命名转换到全小写蛇形 ¶
CaseSnake将字符串转换中的符号(下划线,空格,点,中横线)用下划线( _ )替换,并全部转换为小写字母。 如: hello world-->hello_world
func X命名转换到全小写蛇形2 ¶
CaseSnakeFirstUpper将字符串中的字母为大写时,将大写字母转换为小写字母并在其前面增加一个下划线'_',首字母大写时,只转换为小写,前面不增加下划线'_' 如: RGBCodeMd5-->rgb_code_md5
func X命名转换到大写蛇形 ¶
CaseSnakeScreaming把字符串中的符号(下划线,空格,点,中横线),全部替换为下划线'_',并将所有英文字母转为大写。 如: hello world--> HELLO_WORLD
func X命名转换到大写驼峰短横线 ¶
CaseKebabScreaming将字符串转换中的符号(下划线,空格,点,中横线)用中横线'-'替换,并全部转换为大写字母。 如: hello world-->HELLO-WORLD
func X命名转换到小写短横线 ¶
CaseKebab将字符串转换中的符号(下划线,空格,点,)用中横线'-'替换,并全部转换为小写字母。 如: hello world-->hello-world
func X命名转换到首字母大写驼峰 ¶
CaseCamel将字符串转换为大驼峰形式(首字母大写)。 如: hello world-->HelloWorld
func X命名转换到首字母小写驼峰 ¶
CaseCamelLowe将字符串转换为小驼峰形式(首字母小写)。 如: hello world-->helloWorld
func X命名转换按符号 ¶
CaseDelimited将字符串转换中的符号进行替换。 如: var ( str = `hello world` del = byte('-') result = gstr.CaseDelimited(str, del) ) fmt.Println(result) // hello-world
func X按字符数量换行 ¶
WordWrap 将字符串按照给定的字符数进行换行处理。 该函数支持对英文和中文标点符号进行截断处理。 TODO: 实现自定义截断参数功能,参考 http://php.net/manual/en/function.wordwrap.php.
func X按长度取左边并带前缀 ¶
StrLimit 返回字符串 `str` 指定长度为 `length` 的部分,如果 `str` 的长度大于 `length`, 则结果字符串后会追加 `suffix`。
func X按长度取左边并带前缀Unicode ¶
StrLimitRune 返回字符串 `str` 指定长度的子串,若 `str` 的长度大于 `length`, 则结果字符串末尾会追加 `suffix`。此函数将参数 `str` 视为 unicode 字符串处理。
func X按长度取文本 ¶
SubStr 函数返回字符串 `str` 中由 `start` 和 `length` 参数指定的部分子串。 参数 `length` 是可选的,默认情况下会使用 `str` 的长度。 示例:SubStr("12345", 1, 2) => "23"
func X按长度取文本Unicode ¶
SubStrRune 返回字符串 `str` 中由 `start` 和 `length` 参数指定的部分。 SubStrRune 将参数 `str` 视为unicode字符串处理。 参数 `length` 是可选的,默认情况下它使用 `str` 的长度。 更详细的翻译: ```go SubStrRune 函数返回给定字符串 `str` 从 `start` 位置开始的一个子串。 在此函数中,我们把输入的字符串 `str` 当作Unicode字符序列进行处理。 参数 `length` 是可选的,如果不提供,则默认截取从 `start` 到字符串结尾的所有字符。
func X数组替换并忽略大小写 ¶
ReplaceIByArray 返回 `origin` 的副本, 其中内容按照顺序被切片替换,并且不区分大小写。
func X替换换行符 ¶
Nl2Br在字符串中的所有换行符前插入HTML换行标签(`br`|<br />): 包括\n\r、\r\n、\r、\n。 此函数将参数`str`视为Unicode字符串处理。
func X查找Unicode ¶
PosRune 类似于函数 Pos,但它将 `haystack` 和 `needle` 视为 Unicode 字符串处理。
func X查找并忽略大小写 ¶
PosI 函数返回从 `startOffset` 位置开始,在字符串 `haystack` 中首次出现子串 `needle` 的位置,且该搜索过程不区分大小写。 若未找到,则返回 -1。
func X查找并忽略大小写Unicode ¶
PosIRune 类似于函数 PosI,但将 `haystack` 和 `needle` 视为 Unicode 字符串。
func X格式化数值 ¶
NumberFormat 对数字进行格式化,添加千位分隔符。 `decimals`: 设置小数点后的位数。 `decPoint`: 设置小数点的分隔符。 `thousandsSep`: 设置千位之间的分隔符。 参考:http://php.net/manual/en/function.number-format.php 这段注释是Go语言代码中对NumberFormat函数功能和参数的中文解释。
func X版本号比较GNU格式 ¶
CompareVersion 按照标准 GNU 版本格式比较 `a` 和 `b`。
如果 `a` > `b`,则返回 1。
如果 `a` < `b`,则返回 -1。
如果 `a` = `b`,则返回 0。
标准 GNU 版本格式例如: v1.0 1 1.0.0 v1.0.1 v2.10.8 10.2.0 等等。
func X版本号比较GO格式 ¶
CompareVersionGo 按照 Golang 标准版本格式比较 `a` 和 `b`。
如果 `a` > `b`,则返回 1。
如果 `a` < `b`,则返回 -1。
如果 `a` = `b`,则返回 0。
Golang 标准版本格式例如: 1.0.0 v1.0.1 v2.10.8 10.2.0 v0.0.0-20190626092158-b2ccc519800e v1.12.2-0.20200413154443-b17e3a6804fa v4.20.0+incompatible 等等。
func X相等比较并忽略大小写 ¶
Equal 判断当 `a` 和 `b` 被解释为 UTF-8 字符串时, 在Unicode大小写折叠规则下,它们是否大小写不敏感地相等。
func X统计unicode字符数 ¶
CountChars 返回关于字符串中使用字符数量的信息。 它将参数 `str` 视为unicode字符串。
func X统计次数并忽略大小写 ¶
CountI 计算字符串 `s` 中不区分大小写出现的子串 `substr` 的次数。 如果在 `s` 中未找到 `substr`,则返回 0。
func X过滤尾字符并含空白 ¶
TrimRight 从字符串的末尾删除空白字符(或其他字符)。
func X过滤首尾符并含空白 ¶
Trim 函数用于从字符串的开头和结尾去除空格(或其他字符)。 可选参数 `characterMask` 指定了需要额外去除的字符。
func X连接Any ¶
JoinAny 通过连接 `array` 中的元素来创建一个单一字符串。分隔符字符串 `sep` 将会被放置在结果字符串中各元素之间。
参数 `array` 可以是任意类型的切片,只要它可以转换为字符串数组。
Types ¶
type CaseType ¶
type CaseType string
CaseType 是 Case 的类型。
Source Files ¶
- gstr.go
- gstr_array.go
- gstr_case.go
- gstr_compare.go
- gstr_contain.go
- gstr_convert.go
- gstr_count.go
- gstr_create.go
- gstr_domain.go
- gstr_is.go
- gstr_length.go
- gstr_list.go
- gstr_parse.go
- gstr_pos.go
- gstr_replace.go
- gstr_similar.go
- gstr_slashes.go
- gstr_split_join.go
- gstr_sub.go
- gstr_trim.go
- gstr_upper_lower.go
- gstr_version.go