Documentation ¶
Overview ¶
Package strutil provide some string,char,byte util functions
Index ¶
- Constants
- Variables
- func AddSlashes(s string) string
- func AnyToString(val any, defaultAsErr bool) (str string, err error)
- func B32Decode(str string) string
- func B32Encode(str string) string
- func B64Decode(str string) string
- func B64DecodeBytes(str string) []byte
- func B64Encode(str string) string
- func B64EncodeBytes(src []byte) []byte
- func Bool(s string) (bool, error)
- func Byte2str(b []byte) string
- func Byte2string(b []byte) string
- func BytePos(s string, bt byte) int
- func Camel(s string, sep ...string) string
- func CamelCase(s string, sep ...string) string
- func Compare(s1, s2, op string) bool
- func ContainsAll(s string, subs []string) bool
- func ContainsOne(s string, subs []string) bool
- func Cut(s, sep string) (before string, after string, found bool)
- func EscapeHTML(s string) string
- func EscapeJS(s string) string
- func FilterEmail(s string) string
- func FirstLine(output string) string
- func GenMd5(src any) string
- func HasAllSubs(s string, subs []string) bool
- func HasEmpty(ss ...string) bool
- func HasOnePrefix(s string, prefixes []string) bool
- func HasOneSub(s string, subs []string) bool
- func HasPrefix(s string, prefix string) bool
- func HasSuffix(s string, suffix string) bool
- func HashPasswd(pwd, key string) string
- func IContains(s string, sub string) bool
- func IEqual(s1 string, s2 string) bool
- func Implode(sep string, ss ...string) string
- func Indent(s, prefix string) string
- func IndentBytes(b, prefix []byte) []byte
- func Int(s string) (int, error)
- func Int2(s string) int
- func Int64(s string) int64
- func Int64OrErr(s string) (int64, error)
- func Int64OrPanic(s string) int64
- func IntOrPanic(s string) int
- func Ints(s string, sep ...string) []int
- func IsAllEmpty(ss ...string) bool
- func IsAlphaNum(c uint8) bool
- func IsAlphabet(char uint8) bool
- func IsBlank(s string) bool
- func IsBlankBytes(bs []byte) bool
- func IsEmpty(s string) bool
- func IsEndOf(s, suffix string) bool
- func IsNotBlank(s string) bool
- func IsNumChar(c byte) bool
- func IsNumeric(s string) bool
- func IsSpace(c byte) bool
- func IsSpaceRune(r rune) bool
- func IsStartOf(s, prefix string) bool
- func IsStartsOf(s string, prefixes []string) bool
- func IsSymbol(r rune) bool
- func IsValidUtf8(s string) bool
- func IsVersion(s string) bool
- func Join(sep string, ss ...string) string
- func JoinAny(sep string, parts ...any) string
- func JoinList(sep string, ss []string) string
- func LTrim(s string, cutSet ...string) string
- func Lower(s string) string
- func LowerFirst(s string) string
- func Lowercase(s string) string
- func Ltrim(s string, cutSet ...string) string
- func MD5(src any) string
- func Md5(src any) string
- func Md5Bytes(src any) []byte
- func MicroTimeHexID() string
- func MicroTimeID() string
- func MustBool(s string) bool
- func MustCut(s, sep string) (before string, after string)
- func MustInt(s string) int
- func MustInt64(s string) int64
- func MustString(in any) string
- func MustToTime(s string, layouts ...string) time.Time
- func NoCaseEq(s, t string) bool
- func OrCond(cond bool, s1, s2 string) string
- func OrElse(s, newVal string) string
- func OrHandle(s string, fn func(s string) string) string
- func PadBytes(bs []byte, pad byte, length int, pos PosFlag) []byte
- func PadBytesLeft(bs []byte, pad byte, length int) []byte
- func PadBytesRight(bs []byte, pad byte, length int) []byte
- func PadChars[T byte | rune](cs []T, pad T, length int, pos PosFlag) []T
- func PadLeft(s, pad string, length int) string
- func PadRight(s, pad string, length int) string
- func PadRunes(rs []rune, pad rune, length int, pos PosFlag) []rune
- func PadRunesLeft(rs []rune, pad rune, length int) []rune
- func PadRunesRight(rs []rune, pad rune, length int) []rune
- func Padding(s, pad string, length int, pos PosFlag) string
- func PrettyJSON(v any) (string, error)
- func QuietBool(s string) bool
- func QuietCut(s, sep string) (before string, after string)
- func QuietInt(s string) int
- func QuietInt64(s string) int64
- func QuietString(in any) string
- func Quote(s string) string
- func RTrim(s string, cutSet ...string) string
- func RandomBytes(length int) ([]byte, error)
- func RandomChars(ln int) string
- func RandomCharsV2(ln int) string
- func RandomCharsV3(ln int) string
- func RandomString(length int) (string, error)
- func RenderTemplate(input string, data any, fns template.FuncMap, isFile ...bool) string
- func RenderText(input string, data any, fns template.FuncMap, isFile ...bool) string
- func Repeat(s string, times int) string
- func RepeatBytes(char byte, times int) []byte
- func RepeatChars[T byte | rune](char T, times int) []T
- func RepeatRune(char rune, times int) []rune
- func Replaces(str string, pairs map[string]string) string
- func Resize(s string, length int, align PosFlag) string
- func Rtrim(s string, cutSet ...string) string
- func RuneCount(s string) int
- func RuneIsLower(c rune) bool
- func RuneIsUpper(c rune) bool
- func RuneIsWord(c rune) bool
- func RunePos(s string, ru rune) int
- func RuneWidth(r rune) int
- func RunesWidth(rs []rune) (w int)
- func Similarity(s, t string, rate float32) (float32, bool)
- func SnakeCase(s string, sep ...string) string
- func Split(s, sep string) (ss []string)
- func SplitInlineComment(val string) (string, string)
- func SplitN(s, sep string, n int) (ss []string)
- func SplitNTrimmed(s, sep string, n int) (ss []string)
- func SplitNValid(s, sep string, n int) (ss []string)
- func SplitTrimmed(s, sep string) (ss []string)
- func SplitValid(s, sep string) (ss []string)
- func StrPos(s, sub string) int
- func String(val any) (string, error)
- func StringOrErr(val any) (string, error)
- func Strings(s string, sep ...string) []string
- func StripSlashes(s string) string
- func Substr(s string, pos, length int) string
- func SubstrCount(s string, substr string, params ...uint64) (int, error)
- func TextSplit(s string, w int) []string
- func TextTruncate(s string, w int, tail string) string
- func TextWidth(s string) int
- func TextWrap(s string, w int) string
- func Title(s string) string
- func ToArray(s string, sep ...string) []string
- func ToBool(s string) (bool, error)
- func ToBytes(s string) (b []byte)
- func ToDuration(s string) (time.Duration, error)
- func ToInt(s string) (int, error)
- func ToInt64(s string) (int64, error)
- func ToIntSlice(s string, sep ...string) (ints []int, err error)
- func ToInts(s string, sep ...string) ([]int, error)
- func ToSlice(s string, sep ...string) []string
- func ToString(val any) (string, error)
- func ToStrings(s string, sep ...string) []string
- func ToTime(s string, layouts ...string) (t time.Time, err error)
- func Trim(s string, cutSet ...string) string
- func TrimCut(s, sep string) (string, string)
- func TrimLeft(s string, cutSet ...string) string
- func TrimRight(s string, cutSet ...string) string
- func URLDecode(s string) string
- func URLEncode(s string) string
- func Unquote(s string) string
- func Upper(s string) string
- func UpperFirst(s string) string
- func UpperWord(s string) string
- func Uppercase(s string) string
- func Utf8Len(s string) int
- func Utf8Split(s string, w int) []string
- func Utf8Truncate(s string, w int, tail string) string
- func Utf8Width(s string) int
- func Utf8len(s string) int
- func Valid(ss ...string) string
- func VerifyPasswd(pwdMAC, pwd, key string) bool
- func VersionCompare(v1, v2, op string) bool
- func WidthWrap(s string, w int) string
- func WordWrap(s string, w int) string
- func WrapTag(s, tag string) string
- type BaseEncoder
- type BaseType
- type Buffer
- type ByteChanPool
- type PosFlag
- type Runes
- type SimilarComparator
- type StrVal
- type Value
- func (s Value) Bool() bool
- func (s Value) Bytes() []byte
- func (s Value) HasPrefix(sub string) bool
- func (s Value) HasSuffix(sub string) bool
- func (s Value) Int() int
- func (s Value) Int64() int64
- func (s Value) IsBlank() bool
- func (s Value) IsEmpty() bool
- func (s Value) IsEndWith(sub string) bool
- func (s Value) IsStartWith(sub string) bool
- func (s Value) OrElse(or string) string
- func (s *Value) Set(val string) error
- func (s Value) Split(sep string) []string
- func (s Value) SplitN(sep string, n int) []string
- func (s Value) String() string
- func (s Value) Val() string
- func (s Value) WithTrimSpace() Value
Constants ¶
const ( Numbers = "0123456789" AlphaBet = "abcdefghijklmnopqrstuvwxyz" AlphaBet1 = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" AlphaNum = "abcdefghijklmnopqrstuvwxyz0123456789" AlphaNum2 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" AlphaNum3 = "0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" )
some consts string chars
Variables ¶
var ( ErrDateLayout = errors.New("invalid date layout string") ErrInvalidParam = errors.New("invalid input parameter") )
var ( UpWords = UpperWord LoFirst = LowerFirst UpFirst = UpperFirst Snake = SnakeCase )
methods aliases
var ( DefMinInt = 1000 DefMaxInt = 9999 )
global id:
https://github.com/rs/xid https://github.com/satori/go.uuid
var Equal = strings.EqualFold
Equal check, alias of strings.EqualFold
Functions ¶
func AnyToString ¶
AnyToString convert value to string.
if defaultAsErr:
False will use fmt.Sprint convert complex type True will return error on fail.
func CamelCase ¶
CamelCase convert string to camel case.
Support:
"range_price" -> "rangePrice" "range price" -> "rangePrice" "range-price" -> "rangePrice"
func ContainsAll ¶
ContainsAll substr(s) in the given string. alias of HasAllSubs()
func ContainsOne ¶
ContainsOne substr(s) in the given string. alias of HasOneSub()
func HasAllSubs ¶
HasAllSubs all substr in the given string.
func HasOnePrefix ¶
HasOnePrefix the string start withs one of the subs
func HashPasswd ¶
HashPasswd for quick hash an input password string
func Indent ¶
Indent inserts prefix at the beginning of each non-empty line of s. The end-of-line marker is NL.
func IndentBytes ¶
IndentBytes inserts prefix at the beginning of each non-empty line of b. The end-of-line marker is NL.
func Int64OrErr ¶
Int64OrErr convert string to int, return error on fail
func Int64OrPanic ¶
Int64OrPanic convert value to int, will panic on error
func IntOrPanic ¶
IntOrPanic convert value to int, will panic on error
func IsAlphaNum ¶
IsAlphaNum reports whether the byte is an ASCII letter, number, or underscore
func IsBlankBytes ¶
IsBlankBytes returns true if the given []byte is all space characters.
func IsNotBlank ¶
IsNotBlank returns true if the given string is not blank.
func IsSpaceRune ¶
IsSpaceRune returns true if the given rune is a space, otherwise false.
func IsStartsOf ¶
IsStartsOf alias of the HasOnePrefix
func MicroTimeHexID ¶
func MicroTimeHexID() string
MicroTimeHexID generate. return like: 5b5f0588af1761ad3(len: 16-17)
func MicroTimeID ¶
func MicroTimeID() string
MicroTimeID generate. return like: 16074145697981929446(len: 20)
func MustString ¶
MustString convert value to string, TODO will panic on error
func MustToTime ¶
MustToTime convert date string to time.Time
func PadBytesLeft ¶
PadBytesLeft a byte to want length
func PadBytesRight ¶
PadBytesRight a byte to want length
func PadRunesLeft ¶
PadRunesLeft a rune to want length
func PadRunesRight ¶
PadRunesRight a rune to want length
func PrettyJSON ¶
PrettyJSON get pretty Json string Deprecated: please use fmtutil.PrettyJSON() or jsonutil.Pretty() instead it
func QuietInt64 ¶
QuietInt64 convert string to int, will ignore error
func QuietString ¶
QuietString convert value to string, will ignore error
func RandomChars ¶
RandomChars generate give length random chars at `a-z`
func RandomCharsV2 ¶
RandomCharsV2 generate give length random chars in `0-9a-z`
func RandomCharsV3 ¶
RandomCharsV3 generate give length random chars in `0-9a-zA-Z`
func RandomString ¶
RandomString generate. Example:
// this will give us a 44 byte, base64 encoded output token, err := RandomString(32) if err != nil { // Serve an appropriately vague error to the // user, but log the details internally. }
func RenderTemplate ¶
RenderTemplate render text template
func RenderText ¶
RenderText render text template
func RepeatChars ¶
RepeatChars repeat a byte char.
func Replaces ¶
Replaces replace multi strings
pairs: {old1: new1, old2: new2, ...}
Can also use:
strings.NewReplacer("old1", "new1", "old2", "new2").Replace(str)
func RuneWidth ¶
RuneWidth of the rune.
Example:
RuneWidth('你') // 2 RuneWidth('a') // 1 RuneWidth('\n') // 0
func RunesWidth ¶
RunesWidth utf8 runes string width.
Examples:
str := "hi,你好" strutil.Utf8Width(str) => 7 len(str) => 9 len([]rune(str)) = utf8.RuneCountInString(s) => 5
func SplitInlineComment ¶
SplitInlineComment for a text string.
func SplitNTrimmed ¶
SplitNTrimmed split string to slice. will trim space for each node, but not filter empty
func SplitNValid ¶
SplitNValid string to slice. will filter empty string node.
func SplitTrimmed ¶
SplitTrimmed split string to slice. will trim space for each node, but not filter empty
func SplitValid ¶
SplitValid string to slice. will trim each item and filter empty string node.
func StringOrErr ¶
StringOrErr convert value to string, return error on failed
func SubstrCount ¶
SubstrCount returns the number of times the substr substring occurs in the s string. Actually, it comes from strings.Count(). s The string to search in substr The substring to search for params[0] The offset where to start counting. params[1] The maximum length after the specified offset to search for the substring.
func TextTruncate ¶
TextTruncate alias of the Utf8Truncate()
func ToDuration ¶
ToDuration parses a duration string. such as "300ms", "-1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
func Utf8Truncate ¶
Utf8Truncate a string with given width.
func VerifyPasswd ¶
VerifyPasswd for quick verify input password is valid
- pwdMAC from db or config, generated by EncryptPasswd()
func VersionCompare ¶
VersionCompare for two version string.
Types ¶
type BaseEncoder ¶
type BaseEncoder interface { Encode(dst []byte, src []byte) EncodeToString(src []byte) string Decode(dst []byte, src []byte) (n int, err error) DecodeString(s string) ([]byte, error) }
BaseEncoder interface
type ByteChanPool ¶
ByteChanPool struct
Usage:
bp := strutil.NewByteChanPool(500, 1024, 1024) buf:=bp.Get() defer bp.Put(buf) // use buf do something ...
func NewByteChanPool ¶
func NewByteChanPool(maxSize, width, capWidth int) *ByteChanPool
NewByteChanPool instance
type Runes ¶
type Runes []rune
Runes data slice
type SimilarComparator ¶
type SimilarComparator struct {
// contains filtered or unexported fields
}
SimilarComparator definition links:
https://github.com/mkideal/cli/blob/master/fuzzy.go
type Value ¶
type Value string
Value string
func (Value) WithTrimSpace ¶
WithTrimSpace string and return new
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package secutil provide some security utils
|
Package secutil provide some security utils |
Package textscan Implemented a parser that quickly scans and analyzes text content.
|
Package textscan Implemented a parser that quickly scans and analyzes text content. |
Package textutil provide some extra text handle util
|
Package textutil provide some extra text handle util |