Files
4566704 d13de8f3fa feat(stringx): 自 go-hua/common 迁入字符串/切片/拼音工具并独立成包
- common 的 string.go/array.go/pinyin.go 拆为 stringx 包(含随机串、GUID、
  通配符匹配、校验规则、链式缓冲、驼峰转下划线、切片删元素、拼音首字母)
- 附单元测试与 examples/stringx 可运行例程、包 README
- go.mod 新增直接依赖 mozillazg/go-pinyin(go-hua 同版本锁 v0.20.0→实际解析 v0.21.0)
2026-09-20 12:20:28 +08:00

52 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# stringx
字符串与切片通用工具:随机串、UUID、通配符匹配、中间串提取、手机号/身份证校验、
链式字节缓冲、驼峰转下划线、切片删元素、中文拼音首字母。
> 迁移自 go-hua/common(原 string.go / array.go / pinyin.go)。
## 用法
```go
import "git.zeroonesoft.cn/golib/zogo/stringx"
// 随机串(字母数字 / 纯数字 / 十六进制)
stringx.CreateRandomString(16)
stringx.CreateRandomStringInt(6)
stringx.CreateRandomStringHex(8)
// GUID(带连字符)/ UUID(不带连字符),基于 crypto/rand
stringx.GetGUID()
stringx.GetUUID()
// 字符串处理
stringx.GetBetweenStr("key=value&x=1", "key=", "&") // "value"
stringx.Camel2Case("GetUserName") // "get_user_name"
stringx.IsMatchGreed("hello.txt", "*.txt") // true(另有 IsMatchDynamic)
// 校验
stringx.CheckMobile("13812345678")
stringx.CheckIdCard("110101199001011234")
stringx.PhoneCheckRule() // 返回规则正则
stringx.EmailCheckRule()
// 中文拼音首字母(非中文字符原样返回)
stringx.GetFirstLetter("中国") // "zg"
// 切片删除指定下标元素(泛型)
s := stringx.DeleteElement([]int{1, 2, 3, 4, 5}, 2) // [1 2 4 5]
// 链式字节缓冲
b := stringx.NewBuffer()
b.Append("a").Append(1).Append([]byte("b")).Append(rune('c'))
```
完整可运行例程:[examples/stringx/main.go](../examples/stringx/main.go)
## 注意
- `CreateRandomString*` 内部 `rand.Int` 失败时该位为空字符,正常环境不会发生。
- `GetGUID/GetUUID` 是随机 UUID(v4 风格),非确定性 UUID;需要标准 RFC 4122
格式请用 `github.com/google/uuid`。
- 通配符匹配仅支持 `*` 和 `?` 两个通配符。