193 lines
6.3 KiB
Markdown
193 lines
6.3 KiB
Markdown
# String Util
|
|
|
|
This is a go string operate util package.
|
|
|
|
- Github: https://github.com/gookit/goutil/strutil
|
|
- GoDoc: https://godoc.org/github.com/gookit/goutil/strutil
|
|
|
|
## Install
|
|
|
|
```bash
|
|
go get github.com/gookit/goutil/strutil
|
|
```
|
|
|
|
## Usage
|
|
|
|
```go
|
|
ss := strutil.ToArray("a,b,c", ",")
|
|
// Output: []string{"a", "b", "c"}
|
|
|
|
ints, err := strutil.ToIntSlice("1,2,3")
|
|
// Output: []int{1, 2, 3}
|
|
```
|
|
|
|
## Functions
|
|
|
|
```go
|
|
func AddSlashes(s string) string
|
|
func AnyToString(val interface{}, defaultAsErr bool) (str string, err error)
|
|
func B32Decode(str string) string
|
|
func B32Encode(str string) string
|
|
func B64Decode(str string) string
|
|
func B64Encode(str string) string
|
|
func Base64(str string) string
|
|
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 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 GenMd5(src interface{}) string
|
|
func HasAllSubs(s string, subs []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 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 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 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 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 interface{}) string
|
|
func Md5(src interface{}) string
|
|
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 interface{}) string
|
|
func MustToTime(s string, layouts ...string) time.Time
|
|
func NoCaseEq(s, t string) bool
|
|
func PadLeft(s, pad string, length int) string
|
|
func PadRight(s, pad string, length int) string
|
|
func Padding(s, pad string, length int, pos uint8) string
|
|
func PrettyJSON(v interface{}) (string, error)
|
|
func QuietBool(s string) bool
|
|
func QuietInt(s string) int
|
|
func QuietInt64(s string) int64
|
|
func QuietString(in interface{}) 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 interface{}, fns template.FuncMap, isFile ...bool) string
|
|
func RenderText(input string, data interface{}, fns template.FuncMap, isFile ...bool) string
|
|
func Repeat(s string, times int) string
|
|
func RepeatBytes(char byte, times int) (chars []byte)
|
|
func RepeatRune(char rune, times int) (chars []rune)
|
|
func Replaces(str string, pairs map[string]string) 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 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 interface{}) (string, error)
|
|
func StringOrErr(val interface{}) (string, error)
|
|
func Strings(s string, sep ...string) []string
|
|
func StripSlashes(s string) string
|
|
func Substr(s string, pos, length int) string
|
|
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 interface{}) (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) (size int)
|
|
func Utf8len(s string) int
|
|
func VersionCompare(v1, v2, op string) bool
|
|
func WidthWrap(s string, w int) string
|
|
func WrapTag(s, tag string) string
|
|
```
|
|
|
|
## Code Check & Testing
|
|
|
|
```bash
|
|
gofmt -w -l ./
|
|
golint ./...
|
|
```
|
|
|
|
**Testing**:
|
|
|
|
```shell
|
|
go test -v ./strutil/...
|
|
```
|
|
|
|
**Test limit by regexp**:
|
|
|
|
```shell
|
|
go test -v -run ^TestSetByKeys ./strutil/...
|
|
```
|