stringx

package
v0.19.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2026 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-27 23:55:26 * @FilePath: \go-toolbox\pkg\stringx\base.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-01 02:15:52 * @FilePath: \go-toolbox\pkg\stringx\contains.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2026-05-13 13:19:57 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2026-05-13 14:42:55 * @FilePath: \go-toolbox\pkg\stringx\conv.go * @Description: 字符串转换工具 * * Copyright (c) 2026 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2026-01-26 00:00:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2026-01-26 00:00:00 * @FilePath: \go-toolbox\pkg\stringx\domain.go * @Description: 域名处理工具函数 * * Copyright (c) 2026 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-22 10:07:57 * @FilePath: \go-toolbox\pkg\stringx\format.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-08-03 16:55:01 * @FilePath: \go-toolbox\pkg\stringx\index.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2025-06-06 17:50:15 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-06-09 16:04:03 * @FilePath: \go-toolbox\pkg\stringx\parse.go * @Description: * * Copyright (c) 2025 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2026-05-11 13:20:41 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2026-05-13 15:27:31 * @FilePath: \go-toolbox\pkg\stringx\quote.go * @Description: 引用 JSON 字符串

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-07-30 17:26:07 * @FilePath: \go-toolbox\pkg\stringx\repeat.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-22 15:15:18 * @FilePath: \go-toolbox\pkg\stringx\replace.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-11-26 19:55:35 * @FilePath: \go-toolbox\pkg\stringx\split.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-22 10:16:00 * @FilePath: \go-toolbox\pkg\stringx\start_end_with.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-08-03 10:15:25 * @FilePath: \go-toolbox\pkg\stringx\sub.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2023-07-28 00:50:58 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2024-11-22 10:37:52 * @FilePath: \go-toolbox\pkg\stringx\trim.go * @Description: * * Copyright (c) 2024 by kamalyes, All Rights Reserved.

* @Author: kamalyes 501893067@qq.com * @Date: 2025-12-20 20:35:00 * @LastEditors: kamalyes 501893067@qq.com * @LastEditTime: 2025-12-20 20:55:07 * @FilePath: \go-toolbox\pkg\stringx\width.go * @Description: 字符显示宽度计算工具,基于 East Asian Width 标准 * * Copyright (c) 2025 by kamalyes, All Rights Reserved.

Index

Constants

View Source
const MaxFieldNameVariants = 5

MaxFieldNameVariants 变体个数上限:原始名称加四种命名风格

View Source
const RootDomainPrefix = "@"

RootDomainPrefix 根域名前缀标识符(用于DNS记录等场景)

Variables

This section is empty.

Functions

func AddPrefixIfNot

func AddPrefixIfNot(str string, prefix string) string

AddPrefixIfNot 如果给定字符串不是以prefix开头的,在开头补充 prefix

func AddSuffixIfNot

func AddSuffixIfNot(str string, suffix string) string

AddSuffixIfNot 如果给定字符串不是以suffix结尾的,在尾部补充 suffix

func AppendFieldNameVariants

func AppendFieldNameVariants(dst []string, fieldName string) []string

AppendFieldNameVariants 把字段名的各种命名风格变体追加到 dst,返回追加后的切片

顺序与 NormalizeFieldName 一致,dst 为空时第一个元素就是原始名称 供调用方用栈上数组承接,避免为一个用完即弃的切片分配:

var buf [stringx.MaxFieldNameVariants]string
for _, name := range stringx.AppendFieldNameVariants(buf[:0], fieldName) {
    ...
}

pkg/safe 的链式取值就在热路径上这么用:先按原名直取,未命中才算变体

[EN] Appends the naming-style variants of a field name to dst in the same order as NormalizeFieldName, letting callers back dst with a stack array instead of allocating a slice they discard immediately. pkg/safe's chained access uses it exactly that way on its hot path

func CalculateMD5Hash

func CalculateMD5Hash(input string) string

CalculateMD5Hash 计算string md5 hash值

func CleanEmpty

func CleanEmpty(str string) string

CleanEmpty 清除空白串

func Coalesce

func Coalesce(s ...string) string

Coalesce 高性能字符串拼接

func CompareIgnoreCase

func CompareIgnoreCase(str1 string, str2 string) int

CompareIgnoreCase 比较两个字符串,用于排序(大小写不敏感)

func Contains

func Contains(value string, searchStr string) bool

Contains 指定字符是否在字符串中出现过

func ContainsAll

func ContainsAll(str string, searchStrs []string) bool

ContainsAll 检查指定字符串中是否含给定的所有字符串

func ContainsAny

func ContainsAny(value string, searchStrs []string) bool

ContainsAny 查找指定字符串是否包含指定字符串列表中的任意一个字符串

func ContainsAnyIgnoreCase

func ContainsAnyIgnoreCase(str string, searchStrs []string) bool

ContainsAnyIgnoreCase 找指定字符串是否包含指定字符串列表中的任意一个字符串(忽略大小写)

func ContainsBlank

func ContainsBlank(str string) bool

ContainsBlank 给定字符串是否包含空白符(空白符包括空格、制表符、全角空格和不间断空格)

func ContainsIgnoreCase

func ContainsIgnoreCase(value string, searchStr string) bool

ContainsIgnoreCase 指定字符是否在字符串中出现过(忽略大小写)

func ConvertCharacterStyle

func ConvertCharacterStyle(input string, caseType CharacterStyle) string

ConvertCharacterStyle 根据指定的 CharacterStyle 将字符串转换为相应的格式

func Count

func Count(str string, searchStr string) int

Count 统计指定内容中包含指定字符串的数量

func Cut

func Cut(str string, n int) []string

Cut 将字符串切分为n等份

func DisplayWidth

func DisplayWidth(s string) int

DisplayWidth 计算字符串的显示宽度 基于 East Asian Width 标准,考虑中文、日文、韩文、Emoji 等宽字符

func EndWith

func EndWith(str string, suffix string) bool

EndWith 是否以指定字符串结尾

func EndWithAny

func EndWithAny(str string, suffixes []string) bool

EndWithAny 给定字符串是否以任何一个字符串结尾 给定字符串和数组为空都返回false

func EndWithAnyIgnoreCase

func EndWithAnyIgnoreCase(str string, suffixes []string) bool

EndWithAnyIgnoreCase 给定字符串是否以任何一个字符串结尾(忽略大小写) 给定字符串和数组为空都返回false

func EndWithIgnoreCase

func EndWithIgnoreCase(str string, suffix string) bool

EndWithIgnoreCase 是否以指定字符串结尾,忽略大小写

func Equals

func Equals(str1 string, str2 string) bool

Equals 比较2个字符串(大小写敏感)

func EqualsAny

func EqualsAny(str1 string, str2 []string) bool

EqualsAny 给定字符串是否与提供的中任一字符串相同

func EqualsAnyIgnoreCase

func EqualsAnyIgnoreCase(str1 string, str2 []string) bool

EqualsAnyIgnoreCase 给定字符串是否与提供的中任一字符串相同(忽略大小写)

func EqualsAt

func EqualsAt(value string, position int, subStr string) bool

EqualsAt 字符串指定位置的字符是否与给定字符相同

func EqualsIgnoreCase

func EqualsIgnoreCase(str1 string, str2 string) bool

EqualsIgnoreCase 比较2个字符串(大小写不敏感)

func EqualsTrimIgnoreCase

func EqualsTrimIgnoreCase(str1 string, str2 string) bool

EqualsTrimIgnoreCase 去除首尾空白后忽略大小写比较字符串

func ExtractDomainPrefix

func ExtractDomainPrefix(fullDomain, primaryDomain string) string

ExtractDomainPrefix 从完整域名中提取前缀 示例: ExtractDomainPrefix("www.example.com", "example.com") -> "www" 示例: ExtractDomainPrefix("example.com", "example.com") -> "@"

func ExtractValue

func ExtractValue(extra string, key string, searchPrefix string) string

ExtractValue 从给定的字符串中提取指定的键的值

func FastAppendInt

func FastAppendInt(buf []byte, val int) []byte

FastAppendInt 将整数追加到缓冲区

func FastFloat

func FastFloat(val float64, prec int) string

FastFloat 浮点数转字符串

func FastFormatTime

func FastFormatTime(buf []byte, t time.Time) []byte

FastFormatTime 格式化时间到缓冲区

func FastFormatTimeCompact

func FastFormatTimeCompact(buf []byte, t time.Time) []byte

FastFormatTimeCompact 格式化时间到缓冲区,紧凑格式

func FastFormatTimeISO

func FastFormatTimeISO(buf []byte, t time.Time) []byte

FastFormatTimeISO 格式化时间到缓冲区,ISO格式

func FastItoa

func FastItoa(val int) string

FastItoa 整数转字符串

func Fill

func Fill(str string, char string, length int, isPre bool) string

Fill 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串

func FillAfter

func FillAfter(str string, char string, length int) string

FillAfter 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串

func FillBefore

func FillBefore(str string, char string, length int) string

FillBefore 将已有字符串填充为规定长度,如果已有字符串超过这个长度则返回这个字符串

func FindKeysByValue

func FindKeysByValue(data map[string]string, searchValue string) []string

FindKeysByValue 函数

func Format

func Format(template string, params map[string]interface{}) string

Format 通过map中的参数 格式化字符串 map = {a: "aValue", b: "bValue"} format("{a} and {b}", map) ---=》 aValue and bValue

func GetContainsStr

func GetContainsStr(str string, searchStrs []string) string

GetContainsStr 查找指定字符串是否包含指定字符串列表中的任意一个字符串,如果包含返回找到的第一个字符串 不存在返回空串

func Hide

func Hide(str string, startInclude int, endExclude int) string

Hide 替换指定字符串的指定区间内字符为"*" 俗称:脱敏功能

func IndexOf

func IndexOf(str string, subStr string) int

IndexOf 返回字符在原始字符串的下标

func IndexOfByRange

func IndexOfByRange(str string, subStr string, start int, end int) int

IndexOfByRange 指定范围内查找指定字符

func IndexOfByRangeStart

func IndexOfByRangeStart(str string, subStr string, start int) int

IndexOfByRangeStart 指定范围内查找指定字符

func IndexOfIgnoreCase

func IndexOfIgnoreCase(str string, subStr string) int

IndexOfIgnoreCase 返回字符在原始字符串的下标(大小写不敏感)

func IndexOfIgnoreCaseByRange

func IndexOfIgnoreCaseByRange(str string, subStr string, start int) int

IndexOfIgnoreCaseByRange 从指定下标开始,返回在字符串中的下标 (大小不敏感)

func IndexedFormat

func IndexedFormat(template string, params []interface{}) string

IndexedFormat 有序的格式化文本,使用{number}做为占位符 通常使用:format("this is {0} for {1}", "a", "b") =》 this is a for b

性能:使用 strconv.Itoa + 字符串拼接构造占位符,避免 fmt.Sprintf 反射开销

func InsertSpaces

func InsertSpaces(str string, interval int) string

InsertSpaces 插入空值

func IsSubdomain

func IsSubdomain(subdomain, primaryDomain string) bool

IsSubdomain 判断是否为子域名

func LastIndexOf

func LastIndexOf(str string, subStr string) int

LastIndexOf 返回最后出现指定字符串的下标

func LastIndexOfByRangeStart

func LastIndexOfByRangeStart(str string, subStr string, start int) int

LastIndexOfByRangeStart 从指定下标开始,返回最后出现指定字符串的下标

func LastIndexOfIgnoreCase

func LastIndexOfIgnoreCase(str string, subStr string) int

LastIndexOfIgnoreCase 返回最后出现指定字符串的下标(大小写不敏感)

func Length

func Length(str string) int

Length 计算字符(rune)长度 使用 utf8.RuneCountInString 零分配遍历,替代 []rune(str) 的堆分配

func NormalizeFieldName

func NormalizeFieldName(fieldName string) []string

NormalizeFieldName 规范化字段名,返回所有可能的命名风格变体 支持的输入格式:camelCase, PascalCase, snake_case, kebab-case 返回顺序:原始名称、PascalCase、camelCase、snake_case、kebab-case

重复的变体会被跳过原先逐项手写去重条件,kebab 只和原名、snake 比, 于是 "X1" 这类输入会得到 ["X1","x1","x1"]——调用方按变体逐个查找时, 同一个名字要查两遍,map 多一次哈希,结构体多一次 FieldByName 全字段扫描

[EN] Duplicate variants are skipped. The original hand-wrote its dedup conditions and compared kebab case only against the original and snake case, so an input like "X1" produced ["X1","x1","x1"] and a caller iterating the variants looked the same name up twice

func NormalizeSQLDirection

func NormalizeSQLDirection(direction, defaultDirection string) string

NormalizeSQLDirection 规范化排序方向,仅允许 "ASC" 或 "DESC"(不区分大小写) direction: 输入的排序方向 defaultDirection: 默认方向(当输入无效时) 返回规范化后的排序方向(大写)

func OrdinalIndexOf

func OrdinalIndexOf(str string, subStr string, ordinal int, start ...int) int

OrdinalIndexOf 返回字符串 subStr 在字符串 str 中第 ordinal 次出现的位置。 如果 str="" 或 subStr=" 或 ordinal≥0 则返回-1

func Pad

func Pad(input string, minLength int, paddler ...*Paddler) string

Pad 输入的字符长度<minLength时自动补位*

func ParseFieldInt

func ParseFieldInt(field string, min, max int) (int, error)

ParseFieldInt 解析字段,只支持单数字,不支持通配符。

func ParseFieldIntOrWildcard

func ParseFieldIntOrWildcard(field string, wildcard string, min, max int) (int, error)

ParseFieldIntOrWildcard 解析字段,支持单个数字或指定的通配符字符串。 返回值: - 当字段等于 wildcard 时,返回 -1,表示任意值。 - 当字段为数字时,返回对应整数。 - 当字段无效或超出范围时,返回错误。

func QuoteJSONBytes

func QuoteJSONBytes(str string) []byte

QuoteJSONBytes 将字符串按 JSON 字符串规则转义,并返回带双引号的字节切片

func Repeat

func Repeat(str string, count int) string

Repeat 重复字符串

func RepeatAndJoin

func RepeatAndJoin(str string, delimiter string, count int) string

RepeatAndJoin 重复某个字符串并通过分界符连接

func RepeatByLength

func RepeatByLength(str string, padLen int) string

RepeatByLength 重复某个字符串到指定长度

func Replace

func Replace(source string, searchStr string, replacement string, replaceCount int) string

Replace 替换字符串

func ReplaceAll

func ReplaceAll(source string, searchStr string, replacement string) string

ReplaceAll 替换字符串

func ReplaceSpecialChars

func ReplaceSpecialChars(str string, replaceValue rune) string

ReplaceSpecialChars 去掉特殊符号、转为自定义

func ReplaceWithIndex

func ReplaceWithIndex(str string, startIndex int, endIndex int, replacedStr string) string

ReplaceWithIndex 按照指定区间替换字符串 startIndex 开始位置(包含) endIndex 结束位置(不包含)

func ReplaceWithMatcher

func ReplaceWithMatcher(str string, regex string, replaceFun func(string) string) string

ReplaceWithMatcher 通过正则表达式替换字符串

正则会按模式串缓存,同一模式只编译一次,原因见 regexCache

func Reverse

func Reverse(str string) string

Reverse 反转给定的字符串

func RuneWidth

func RuneWidth(r rune) int

RuneWidth 返回单个 rune 的显示宽度 基于 East Asian Width 标准和终端显示规则: - ASCII 可见字符(0x20-0x7E)占 1 列 - 控制字符(0x00-0x1F, 0x7F-0x9F)占 0 列 - CJK 字符(中文、日文、韩文)占 2 列 - Emoji 表情符号占 2 列 - 其他字符默认占 1 列

func SafeIndexOfByRange

func SafeIndexOfByRange(str string, subStr string, options ...func(*searchOptions)) (index int)

SafeIndexOfByRange 在指定范围内查找指定字符,避免下标溢出

func SanitizeSlug

func SanitizeSlug(name string) string

SanitizeSlug 格式化字符串为 URL 友好的 slug 格式 规则:小写、去除空格、只保留字母数字和连字符、去除连续连字符、去除首尾连字符 适用场景:项目名称、域名、URL slug 等

示例:

SanitizeSlug("Hello World!")      // "hello-world"
SanitizeSlug("My--Project__123")  // "my-project-123"
SanitizeSlug("  -test-  ")        // "test"

func Split

func Split(str string, separator string) []string

Split 分割字符串

func SplitAfterMapping

func SplitAfterMapping[T any](str string, separator string, mapping func(s string) (T, error)) []T

SplitAfterMapping 切分字符串,切分之后通过mapping转换并返回

func SplitByLen

func SplitByLen(str string, length int) []string

SplitByLen 根据给定长度,将给定字符串截取为多个部分

func SplitDomain

func SplitDomain(fullDomain, primaryDomain string) (string, string)

SplitDomain 分割域名为前缀和主域名 返回: prefix, primaryDomain 示例: SplitDomain("www.api.example.com", "example.com") -> "www.api", "example.com"

func SplitLimit

func SplitLimit(str string, separator string, limit int) []string

SplitLimit 分割字符串,限制分片数

func SplitTrim

func SplitTrim(str string, separator string) []string

SplitTrim 切分字符串,去除切分后每个元素两边的空白符,去除空白项

func SplitTrimLimit

func SplitTrimLimit(str string, separator string, limit int) []string

SplitTrimLimit 切分字符串,去除切分后每个元素两边的空白符,去除空白项,限制分片数

func StartWith

func StartWith(str string, prefix string) bool

StartWith 字符串是否以给定字符开始

func StartWithAny

func StartWithAny(str string, prefixes []string) bool

StartWithAny 给定字符串是否以任何一个字符串开始; 给定字符串和数组为空都返回false

func StartWithAnyIgnoreCase

func StartWithAnyIgnoreCase(str string, prefixes []string) bool

StartWithAnyIgnoreCase 给定字符串是否以任何一个字符串开始(忽略大小写) 给定字符串和数组为空都返回false

func StartWithIgnoreCase

func StartWithIgnoreCase(str string, prefix string) bool

StartWithIgnoreCase 字符串是否以给定字符开始-忽略大小写

func SubAfter

func SubAfter(str string, separator string, isLastSeparator bool) string

SubAfter 截取分隔字符串之后的字符串,不包括分隔字符串

func SubBefore

func SubBefore(str string, separator string, isLastSeparator bool) string

SubBefore 截取分隔字符串之前的字符串,不包括分隔字符串 isLastSeparator - 是否查找最后一个分隔字符串(多次出现分隔字符串时选取最后一个),true为选取最后一个

func SubBetween

func SubBetween(str string, before string, after string) string

SubBetween 截取指定字符串中间部分,不包括标识字符串

func SubBetweenAll

func SubBetweenAll(str string, prefix string, suffix string) []string

SubBetweenAll 截取指定字符串多段中间部分,不包括标识字符串

func SubString

func SubString(s string, start, length int) string

SubString 截取字符串,从 start 位置开始,截取 length 长度 如果 start 超出范围或为负数,返回空字符串 如果 length 超出剩余长度,截取到字符串末尾

func ToCamelCase

func ToCamelCase(s string) string

ToCamelCase 将字符串转换为驼峰命名法(首字母小写,例如:userName) 支持输入格式:PascalCase, snake_case, kebab-case

func ToInt

func ToInt(s string) (int, error)

func ToKebabCase

func ToKebabCase(s string) string

ToKebabCase 将字符串转换为短横线命名法(例如:user-name) 支持输入格式:camelCase, PascalCase, snake_case

func ToLower

func ToLower(str string) string

ToLower 将字符串转换为小写 直接委托标准库 strings.ToLower:标准库已做极致优化(ASCII 快速路径 + SIMD),

func ToPascalCase

func ToPascalCase(s string) string

ToPascalCase 将字符串转换为帕斯卡命名法(首字母大写的驼峰,例如:UserName) 支持输入格式:camelCase, snake_case, kebab-case, 普通字符串(带空格) 增强版:合并了原 toStudlyCase 的逻辑,统一处理所有分隔符

func ToSliceByte

func ToSliceByte(s string) []byte

ToSliceByte 将字符串转换为字节切片

func ToSnakeCase

func ToSnakeCase(s string) string

ToSnakeCase 将字符串转换为蛇形命名法(例如:user_name) 支持输入格式:camelCase, PascalCase, kebab-case

func ToTitle

func ToTitle(str string) string

ToTitle 将字符串转换为标题格式(每个单词首字母大写)

func ToUpper

func ToUpper(str string) string

ToUpper 将字符串转换为大写 直接委托标准库 strings.ToUpper:标准库已做极致优化(ASCII 快速路径 + SIMD)

func Trim

func Trim(str string) string

Trim 除去字符串头尾部的空白

func TrimAll

func TrimAll(str string, strToRemove string) string

TrimAll 移除字符串中所有给定字符串 示例:TrimAll("aa-bb-cc-dd", "-") => "aabbccdd"

func TrimAllLineBreaks

func TrimAllLineBreaks(str string) string

TrimAllLineBreaks 去除所有换行符,包括:\r \n

func TrimAny

func TrimAny(str string, strsToRemove []string) string

TrimAny 移除字符串中所有给定的多个字符串

func TrimEnd

func TrimEnd(str string) string

TrimEnd 除去字符串尾部的空白

func TrimEndNewlines

func TrimEndNewlines(str string) string

TrimEndNewlines 除去字符串结尾的换行符(\n 和 \r)

func TrimNewlines

func TrimNewlines(str string) string

TrimNewlines 除去字符串首尾的换行符(\n 和 \r)

func TrimPrefix

func TrimPrefix(str string, prefix string) string

TrimPrefix 去掉指定前缀

func TrimPrefixIgnoreCase

func TrimPrefixIgnoreCase(str string, prefix string) string

TrimPrefixIgnoreCase 忽略大小写去掉指定前缀

func TrimProtocol

func TrimProtocol(url string) string

TrimProtocol 移除URL的协议前缀 (支持 http://, https://, ftp://, ws://, wss://, file:// 等所有协议),并移除尾部空格

func TrimStart

func TrimStart(str string) string

TrimStart 除去字符串头部的空白

func TrimStartNewlines

func TrimStartNewlines(str string) string

TrimStartNewlines 除去字符串开头的换行符(\n 和 \r)

func TrimSuffix

func TrimSuffix(str string, suffix string) string

TrimSuffix 去掉指定后缀

func TrimSuffixIgnoreCase

func TrimSuffixIgnoreCase(str string, suffix string) string

TrimSuffixIgnoreCase 去掉指定后缀(忽略大小写)

func TrimSymbols

func TrimSymbols(str string) string

TrimSymbols 使用正则表达式去掉字符串中的所有符号

func Truncate

func Truncate(str string, maxBytes int) string

Truncate 截断字符串,使用不超过maxBytes长度

func TruncateAppendEllipsis

func TruncateAppendEllipsis(str string, maxChars int) string

TruncateAppendEllipsis 截断字符串,使用不超过maxChars字符长度。截断后自动追加省略号(...) 用于存储数据库varchar且编码为UTF-8的字段

func TruncateMessage

func TruncateMessage(content string, maxLen int) string

TruncateMessage 截断消息内容用于日志显示

func UniqueStringSlice

func UniqueStringSlice(slice []string) []string

func WithEnd

func WithEnd(end int) func(*searchOptions)

WithEnd 用于配置结束位置

func WithStart

func WithStart(start int) func(*searchOptions)

WithStart 用于配置起始位置

Types

type CharacterStyle

type CharacterStyle int
const (
	SnakeCharacterStyle  CharacterStyle = iota // 表示蛇形命名法(例如:hello_world)
	StudlyCharacterStyle                       // 表示每个单词首字母大写的风格(例如:HelloWorld)
	CamelCharacterStyle                        // 表示驼峰命名法(例如:helloWorld)
	KebabCharacterStyle                        // 表示短横线命名法(例如:hello-world)
	PascalCharacterStyle                       // 表示帕斯卡命名法(例如:HelloWorld,同 StudlyCharacterStyle)
)

type PadPosition

type PadPosition int
const (
	Left PadPosition = iota
	Right
	Middle
)

type Paddler

type Paddler struct {
	Position PadPosition
}

type StringX

type StringX struct {
	// contains filtered or unexported fields
}

StringX 是一个结构体,用于封装字符串值并提供操作方法。

func New

func New(value string) *StringX

New 创建一个新的 StringX 实例。

func (*StringX) AddPrefixIfNotChain

func (s *StringX) AddPrefixIfNotChain(prefix string) *StringX

AddPrefixIfNotChain 如果给定字符串不是以prefix开头的(链式调用)

func (*StringX) AddSuffixIfNotChain

func (s *StringX) AddSuffixIfNotChain(prefix string) *StringX

AddSuffixIfNotChain 如果给定字符串不是以suffix结尾的,在尾部补充 suffix(链式调用)

func (*StringX) CleanEmptyChain

func (s *StringX) CleanEmptyChain() *StringX

CleanEmptyChain 清除空白串(链式调用)

func (*StringX) CoalesceChain

func (s *StringX) CoalesceChain(strs ...string) *StringX

CoalesceChain 高性能字符串拼接(链式调用)

func (*StringX) CompareIgnoreCaseChain

func (s *StringX) CompareIgnoreCaseChain(str2 string) int

CompareIgnoreCaseChain 比较两个字符串(链式调用,用于排序,忽略大小写)

func (*StringX) ContainsAllChain

func (s *StringX) ContainsAllChain(searchStrs []string) bool

ContainsAllChain 检查指定字符串中是否含给定的所有字符串(链式调用)

func (*StringX) ContainsAnyChain

func (s *StringX) ContainsAnyChain(searchStrs []string) bool

ContainsAnyChain 查找指定字符串是否包含指定字符串列表中的任意一个字符串(链式调用)

func (*StringX) ContainsAnyIgnoreCaseChain

func (s *StringX) ContainsAnyIgnoreCaseChain(searchStrs []string) bool

ContainsAnyIgnoreCaseChain 找指定字符串是否包含指定字符串列表中的任意一个字符串(链式调用,忽略大小写)

func (*StringX) ContainsBlankChain

func (s *StringX) ContainsBlankChain() bool

ContainsBlankChain 给定字符串是否包含空白符(链式调用)

func (*StringX) ContainsChain

func (s *StringX) ContainsChain(searchStr string) bool

ContainsChain 指定字符是否在字符串中出现过(链式调用)

func (*StringX) ContainsIgnoreCaseChain

func (s *StringX) ContainsIgnoreCaseChain(searchStr string) bool

ContainsIgnoreCaseChain 指定字符是否在字符串中出现过(链式调用,忽略大小写)

func (*StringX) ConvertCharacterStyleChain

func (s *StringX) ConvertCharacterStyleChain(caseType CharacterStyle) *StringX

ConvertCharacterStyleChain 根据指定的 CharacterStyle 将字符串转换为相应的格式(链式调用)

func (*StringX) CountChain

func (s *StringX) CountChain(searchStr string) int

CountChain 统计指定内容中包含指定字符串的数量(链式调用)

func (*StringX) DisplayWidthChain

func (s *StringX) DisplayWidthChain() int

DisplayWidthChain 计算字符串的显示宽度(链式调用)

func (*StringX) EqualsAnyChain

func (s *StringX) EqualsAnyChain(strs []string) bool

EqualsAnyChain 给定字符串是否与提供的中任一字符串相同(链式调用)

func (*StringX) EqualsAnyIgnoreCaseChain

func (s *StringX) EqualsAnyIgnoreCaseChain(strs []string) bool

EqualsAnyIgnoreCaseChain 给定字符串是否与提供的中任一字符串相同(链式调用,忽略大小写)

func (*StringX) EqualsAtChain

func (s *StringX) EqualsAtChain(position int, subStr string) bool

EqualsAtChain 字符串指定位置的字符是否与给定字符相同(链式调用)

func (*StringX) EqualsChain

func (s *StringX) EqualsChain(str2 string) bool

EqualsChain 比较2个字符串(链式调用)

func (*StringX) EqualsIgnoreCaseChain

func (s *StringX) EqualsIgnoreCaseChain(str2 string) bool

EqualsIgnoreCaseChain 比较2个字符串(链式调用,忽略大小写)

func (*StringX) EqualsTrimIgnoreCaseChain

func (s *StringX) EqualsTrimIgnoreCaseChain(str2 string) bool

EqualsTrimIgnoreCaseChain 去除首尾空白后忽略大小写比较字符串(链式调用)

func (*StringX) FillAfterChain

func (s *StringX) FillAfterChain(char string, length int) *StringX

FillAfterChain 将已有字符串填充为规定长度(链式调用)

func (*StringX) FillBeforeChain

func (s *StringX) FillBeforeChain(char string, length int) *StringX

FillBeforeChain 将已有字符串填充为规定长度(链式调用)

func (*StringX) FormatChain

func (s *StringX) FormatChain(params map[string]interface{}) *StringX

FormatChain 通过map中的参数格式化字符串(链式调用)

func (*StringX) GetContainsStrChain

func (s *StringX) GetContainsStrChain(searchStrs []string) string

GetContainsStrChain 查找指定字符串是否包含指定字符串列表中的任意一个字符串(链式调用)

func (*StringX) HideChain

func (s *StringX) HideChain(startInclude int, endExclude int) *StringX

HideChain 替换指定字符串的指定区间内字符为"*"(链式调用)

func (*StringX) IndexedFormatChain

func (s *StringX) IndexedFormatChain(params []interface{}) *StringX

IndexedFormatChain 有序的格式化文本(链式调用)

func (*StringX) InsertSpacesChain

func (s *StringX) InsertSpacesChain(interval int) *StringX

InsertSpacesChain 插入空值(链式调用)

func (*StringX) IsBlankChain

func (s *StringX) IsBlankChain() bool

IsBlankChain 判断字符串去除首尾空白后是否为空(链式调用) 已迁移至 go-toolbox/pkg/argus:validate.IsBlankString

func (*StringX) LengthChain

func (s *StringX) LengthChain() int

LengthChain 计算长度(链式调用)

func (*StringX) RepeatAndJoinChain

func (s *StringX) RepeatAndJoinChain(delimiter string, count int) *StringX

RepeatAndJoinChain 重复某个字符串并通过分界符连接(链式调用)

func (*StringX) RepeatByLengthChain

func (s *StringX) RepeatByLengthChain(padLen int) *StringX

RepeatByLengthChain 重复某个字符串到指定长度(链式调用)

func (*StringX) RepeatChain

func (s *StringX) RepeatChain(count int) *StringX

RepeatChain 重复字符串(链式调用)

func (*StringX) ReplaceAllChain

func (s *StringX) ReplaceAllChain(searchStr string, replacement string) *StringX

ReplaceAllChain 替换字符串(链式调用)

func (*StringX) ReplaceChain

func (s *StringX) ReplaceChain(searchStr string, replacement string, replaceCount int) *StringX

ReplaceChain 替换字符串(链式调用)

func (*StringX) ReplaceSpecialCharsChain

func (s *StringX) ReplaceSpecialCharsChain(replaceValue rune) *StringX

ReplaceSpecialCharsChain 去掉特殊符号、转为自定义(链式调用)

func (*StringX) ReplaceWithMatcherChain

func (s *StringX) ReplaceWithMatcherChain(regex string, replaceFun func(string) string) *StringX

ReplaceWithMatcherChain 通过正则表达式替换字符串(链式调用)

func (*StringX) ReverseChain

func (s *StringX) ReverseChain() *StringX

ReverseChain 反转字符串(链式调用)

func (*StringX) SanitizeSlugChain

func (s *StringX) SanitizeSlugChain() *StringX

SanitizeSlugChain 格式化字符串为 URL 友好的 slug 格式(链式调用)

func (*StringX) SubAfterChain

func (s *StringX) SubAfterChain(separator string, isLastSeparator bool) *StringX

SubAfterChain 截取分隔字符串之后的字符串(链式调用)

func (*StringX) SubBeforeChain

func (s *StringX) SubBeforeChain(separator string, isLastSeparator bool) *StringX

SubBeforeChain 截取分隔字符串之前的字符串(链式调用)

func (*StringX) SubBetweenChain

func (s *StringX) SubBetweenChain(before string, after string) *StringX

SubBetweenChain 截取指定字符串中间部分(链式调用)

func (*StringX) SubStringChain

func (s *StringX) SubStringChain(start, length int) *StringX

SubStringChain 截取字符串(链式调用)

func (*StringX) ToLowerChain

func (s *StringX) ToLowerChain() *StringX

ToLowerChain 将字符串转换为小写(链式调用)

func (*StringX) ToTitleChain

func (s *StringX) ToTitleChain() *StringX

ToTitleChain 将字符串转换为标题格式(链式调用)

func (*StringX) ToUpperChain

func (s *StringX) ToUpperChain() *StringX

ToUpperChain 将字符串转换为大写(链式调用)

func (*StringX) TrimAllChain

func (s *StringX) TrimAllChain(strToRemove string) *StringX

TrimAllChain 移除字符串中所有给定字符串(链式调用)

func (*StringX) TrimAllLineBreaksChain

func (s *StringX) TrimAllLineBreaksChain() *StringX

TrimAllLineBreaksChain 去除所有换行符(链式调用)

func (*StringX) TrimAnyChain

func (s *StringX) TrimAnyChain(strsToRemove []string) *StringX

TrimAnyChain 移除字符串中所有给定的多个字符串(链式调用)

func (*StringX) TrimChain

func (s *StringX) TrimChain() *StringX

TrimChain 除去字符串头尾部的空白(链式调用)

func (*StringX) TrimEndChain

func (s *StringX) TrimEndChain() *StringX

TrimEndChain 除去字符串尾部的空白(链式调用)

func (*StringX) TrimEndNewlinesChain

func (s *StringX) TrimEndNewlinesChain() *StringX

TrimEndNewlinesChain 除去字符串结尾的换行符(链式调用)

func (*StringX) TrimNewlinesChain

func (s *StringX) TrimNewlinesChain() *StringX

TrimNewlinesChain 除去字符串首尾的换行符(链式调用)

func (*StringX) TrimPrefixChain

func (s *StringX) TrimPrefixChain(prefix string) *StringX

TrimPrefixChain 去掉指定前缀(链式调用)

func (*StringX) TrimPrefixIgnoreCaseChain

func (s *StringX) TrimPrefixIgnoreCaseChain(prefix string) *StringX

TrimPrefixIgnoreCaseChain 忽略大小写去掉指定前缀(链式调用)

func (*StringX) TrimProtocolChain

func (s *StringX) TrimProtocolChain() *StringX

TrimProtocolChain 移除URL的协议前缀(链式调用)

func (*StringX) TrimStartChain

func (s *StringX) TrimStartChain() *StringX

TrimStartChain 除去字符串头部的空白(链式调用)

func (*StringX) TrimStartNewlinesChain

func (s *StringX) TrimStartNewlinesChain() *StringX

TrimStartNewlinesChain 除去字符串开头的换行符(链式调用)

func (*StringX) TrimSuffixChain

func (s *StringX) TrimSuffixChain(suffix string) *StringX

TrimSuffixChain 去掉指定后缀(链式调用)

func (*StringX) TrimSuffixIgnoreCaseChain

func (s *StringX) TrimSuffixIgnoreCaseChain(suffix string) *StringX

TrimSuffixIgnoreCaseChain 去掉指定后缀(链式调用,忽略大小写)

func (*StringX) TrimSymbolsChain

func (s *StringX) TrimSymbolsChain() *StringX

TrimSymbolsChain 使用正则表达式去掉字符串中的所有符号(链式调用)

func (*StringX) TruncateAppendEllipsisChain

func (s *StringX) TruncateAppendEllipsisChain(maxBytes int) *StringX

TruncateAppendEllipsisChain 截断字符串(链式调用)

func (*StringX) TruncateChain

func (s *StringX) TruncateChain(maxBytes int) *StringX

TruncateChain 截断字符串(链式调用)

func (*StringX) Value

func (s *StringX) Value() string

Value 返回当前字符串的值

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL