竹简文档

字符串处理

空白检查、截断、命名转换、脱敏等字符串工具

字符串处理

xUtil.Str() 提供丰富的字符串处理函数,包括空白检查、截断、命名转换、脱敏等。

import xUtil "github.com/xiaolfeng/bamboo-base-go/common/utility"

入口函数

utility.go
func Str() *pack.Str

空白检查

IsBlank

检查字符串是否为空白(空字符串或只包含空白字符):

package/string.go
func (s *Str) IsBlank(str string) bool
xUtil.Str().IsBlank("")          // true
xUtil.Str().IsBlank("  ")        // true
xUtil.Str().IsBlank("\t\n")      // true
xUtil.Str().IsBlank("hello")     // false

IsNotBlank

检查字符串是否不为空白:

package/string.go
func (s *Str) IsNotBlank(str string) bool
xUtil.Str().IsNotBlank("hello")  // true
xUtil.Str().IsNotBlank("")       // false

DefaultIfBlank

如果字符串为空白则返回默认值:

package/string.go
func (s *Str) DefaultIfBlank(str, defaultStr string) string
xUtil.Str().DefaultIfBlank("", "default")      // "default"
xUtil.Str().DefaultIfBlank("  ", "default")    // "default"
xUtil.Str().DefaultIfBlank("hello", "default") // "hello"

字符串截断

Truncate

截断字符串到指定长度:

package/string.go
func (s *Str) Truncate(str string, maxLen int) string
xUtil.Str().Truncate("Hello World", 5)   // "Hello"
xUtil.Str().Truncate("Hi", 10)           // "Hi"

TruncateWithSuffix

截断字符串并添加后缀:

package/string.go
func (s *Str) TruncateWithSuffix(str string, maxLen int, suffix string) string
xUtil.Str().TruncateWithSuffix("Hello World", 8, "...")   // "Hello..."
xUtil.Str().TruncateWithSuffix("Hi", 10, "...")           // "Hi"
xUtil.Str().TruncateWithSuffix("Hello", 8, "")            // "Hello"(默认后缀 "...")

命名转换

CamelToSnake

驼峰命名转蛇形命名:

package/string.go
func (s *Str) CamelToSnake(str string) string
xUtil.Str().CamelToSnake("userName")       // "user_name"
xUtil.Str().CamelToSnake("UserName")       // "user_name"
xUtil.Str().CamelToSnake("userID")         // "user_i_d"
xUtil.Str().CamelToSnake("HTTPServer")     // "h_t_t_p_server"

SnakeToCamel

蛇形命名转驼峰命名:

package/string.go
func (s *Str) SnakeToCamel(str string) string
xUtil.Str().SnakeToCamel("user_name")      // "userName"
xUtil.Str().SnakeToCamel("user_id")        // "userId"
xUtil.Str().SnakeToCamel("http_server")    // "httpServer"

字符串脱敏

Mask

对字符串进行脱敏处理:

package/string.go
func (s *Str) Mask(str string, start, end int, mask string) string

参数说明:

  • start: 开始保留的字符数
  • end: 结尾保留的字符数
  • mask: 用于替换的字符
// 手机号脱敏
xUtil.Str().Mask("13812345678", 3, 4, "*")   // "138****5678"

// 邮箱脱敏
xUtil.Str().Mask("hello@example.com", 2, 11, "*")  // "he***********.com"

// 身份证脱敏
xUtil.Str().Mask("110101199001011234", 3, 4, "*")  // "110***********1234"

其他工具

RemoveSpaces

移除所有空白字符:

package/string.go
func (s *Str) RemoveSpaces(str string) string
xUtil.Str().RemoveSpaces("Hello World")   // "HelloWorld"
xUtil.Str().RemoveSpaces("a b c")         // "abc"

CountWords

统计单词数量:

package/string.go
func (s *Str) CountWords(str string) int
xUtil.Str().CountWords("Hello World")    // 2
xUtil.Str().CountWords("你好 世界")       // 2

IsValidEmail

验证邮箱格式:

package/string.go
func (s *Str) IsValidEmail(email string) bool
xUtil.Str().IsValidEmail("test@example.com")   // true
xUtil.Str().IsValidEmail("invalid")           // false
xUtil.Str().IsValidEmail("test@.com")         // false

下一步

On this page