字符串处理
空白检查、截断、命名转换、脱敏等字符串工具
字符串处理
xUtil.Str() 提供丰富的字符串处理函数,包括空白检查、截断、命名转换、脱敏等。
import xUtil "github.com/xiaolfeng/bamboo-base-go/common/utility"入口函数
func Str() *pack.Str空白检查
IsBlank
检查字符串是否为空白(空字符串或只包含空白字符):
func (s *Str) IsBlank(str string) boolxUtil.Str().IsBlank("") // true
xUtil.Str().IsBlank(" ") // true
xUtil.Str().IsBlank("\t\n") // true
xUtil.Str().IsBlank("hello") // falseIsNotBlank
检查字符串是否不为空白:
func (s *Str) IsNotBlank(str string) boolxUtil.Str().IsNotBlank("hello") // true
xUtil.Str().IsNotBlank("") // falseDefaultIfBlank
如果字符串为空白则返回默认值:
func (s *Str) DefaultIfBlank(str, defaultStr string) stringxUtil.Str().DefaultIfBlank("", "default") // "default"
xUtil.Str().DefaultIfBlank(" ", "default") // "default"
xUtil.Str().DefaultIfBlank("hello", "default") // "hello"字符串截断
Truncate
截断字符串到指定长度:
func (s *Str) Truncate(str string, maxLen int) stringxUtil.Str().Truncate("Hello World", 5) // "Hello"
xUtil.Str().Truncate("Hi", 10) // "Hi"TruncateWithSuffix
截断字符串并添加后缀:
func (s *Str) TruncateWithSuffix(str string, maxLen int, suffix string) stringxUtil.Str().TruncateWithSuffix("Hello World", 8, "...") // "Hello..."
xUtil.Str().TruncateWithSuffix("Hi", 10, "...") // "Hi"
xUtil.Str().TruncateWithSuffix("Hello", 8, "") // "Hello"(默认后缀 "...")命名转换
CamelToSnake
驼峰命名转蛇形命名:
func (s *Str) CamelToSnake(str string) stringxUtil.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
蛇形命名转驼峰命名:
func (s *Str) SnakeToCamel(str string) stringxUtil.Str().SnakeToCamel("user_name") // "userName"
xUtil.Str().SnakeToCamel("user_id") // "userId"
xUtil.Str().SnakeToCamel("http_server") // "httpServer"字符串脱敏
Mask
对字符串进行脱敏处理:
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
移除所有空白字符:
func (s *Str) RemoveSpaces(str string) stringxUtil.Str().RemoveSpaces("Hello World") // "HelloWorld"
xUtil.Str().RemoveSpaces("a b c") // "abc"CountWords
统计单词数量:
func (s *Str) CountWords(str string) intxUtil.Str().CountWords("Hello World") // 2
xUtil.Str().CountWords("你好 世界") // 2IsValidEmail
验证邮箱格式:
func (s *Str) IsValidEmail(email string) boolxUtil.Str().IsValidEmail("test@example.com") // true
xUtil.Str().IsValidEmail("invalid") // false
xUtil.Str().IsValidEmail("test@.com") // false