strings

package module
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2026 License: MIT Imports: 9 Imported by: 5

README

strings

String manipulation functions primarily used by the goradd framework.

Documentation

Overview

Package strings provides string utilities to the goradd framework.

Index

Examples

Constants

View Source
const AlphaLower = "abcdefghijklmnopqrstuvwxyz"
View Source
const AlphaNumeric = AlphaLower + AlphaUpper + Numbers
View Source
const AlphaUpper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
View Source
const Numbers = "0123456789"
View Source
const PasswordLower = "abcdefghijkmnopqrstuvwxyz"
View Source
const PasswordNum = "23456789"
View Source
const PasswordSym = "!@#%?+=_"
View Source
const PasswordUpper = "ABCDEFGHJKLMNPQRSTUVWXYZ"
View Source
const Token68 = AlphaNumeric + "-._~+/"

Variables

This section is empty.

Functions

func AtoI

func AtoI[T constraints.Integer](s string) T

AtoI is a convenience script for converting a string to various types of signed integers. An invalid input will return zero, including if the input overflows the max size of the integer type.

Example
i := AtoI[uint8]("23")
fmt.Println(i)
Output:

23

func Between added in v0.3.0

func Between(s, left, right string) string

Between returns the string between the left and right values in s. If left or right are not in s, all of s is returned.

func Camel added in v0.3.0

func Camel(s string) string

Camel converts a string separated by spaces, hyphens and other breaks to CamelCase, also known as PascalCase. None alpha-numerics are removed.

func CamelToKebab

func CamelToKebab(camelCase string) string

CamelToKebab converts capitalize from CamelCase to kebab-case. If it encounters a character that is not legitimate camel case, it ignores it (like numbers, spaces, etc.). Runs of upper case letters are treated as one word.

Example
a := CamelToKebab("AbcDef")
fmt.Println(a)
b := CamelToKebab("AbcDEFghi")
fmt.Println(b)
Output:

abc-def
abc-de-fghi

func CamelToSnake

func CamelToSnake(camelCase string) string

CamelToSnake converts camelCase from CamelCase to snake_case. If it encounters a character that is not legitimate camel case, it ignores it (like numbers, spaces, etc.). Runs of upper case letters are treated as one word. A run of upper case, followed by lower case letters will be treated as if the final character in the upper case run belongs with the lower case letters.

Example
a := CamelToSnake("AbcDef")
fmt.Println(a)
b := CamelToSnake("AbcDEFghi")
fmt.Println(b)
Output:

abc_def
abc_de_fghi

func Connect

func Connect(sep string, items ...string) string

Connect joins strings together with the separator sep. Only strings that are not empty strings are joined.

Example
a := Connect("+", "this", "", "that")
fmt.Println(a)
Output:

this+that

func ContainsAnyStrings

func ContainsAnyStrings(haystack string, needles ...string) bool

ContainsAnyStrings returns true if the haystack contains any of the needles

func CryptoString

func CryptoString(source string, n int) string

CryptoString returns a cryptographically secure random string from the given source. Use AlphaNumeric, AlphaUpper, AlphaLower, or Numbers as shortcuts for source.

func Decap added in v0.2.0

func Decap(s string) string

Decap returns a new string with the first character in the string set to its lower case equivalent, and subsequent characters that are capitalized also set to lower case until it encounters a lower case letter.

func EndsWith

func EndsWith(s string, ending string) bool

EndsWith returns true if the string ends with the ending string.

func EqualCaseInsensitive added in v0.3.0

func EqualCaseInsensitive(s1, s2 string) bool

EqualCaseInsensitive is a synonym for the strings package EqualFold which provides unicode compliant case-insensitive comparison.

func ExtractNumbers

func ExtractNumbers(in string) string

ExtractNumbers returns a string with the digits contained in the given string.

Example
a := ExtractNumbers("a1b2 c3")
fmt.Println(a)
Output:

123

func HasCharType

func HasCharType(s string, wantUpper, wantLower, wantDigit, wantPunc, wantSymbol bool) bool

HasCharType returns true if the given string has at least one of the selected char types.

func HasNull

func HasNull(s string) bool

HasNull returns true if the given string has a null character in it. Null characters are highly unusual in a string, and can indicate that an attempt is being made to plant hidden data into storage.

func HasOnlyLetters

func HasOnlyLetters(s string) bool

HasOnlyLetters will return false if any of the characters in the string do not pass the unicode.IsLetter test.

func If

func If(cond bool, trueVal, falseVal string) string

If is like the ternary operator ?. It returns the first string on true, and the second on false.

func Indent

func Indent(s string) string

Indent will indent every line of the string with a tab

func IsASCII

func IsASCII(s string) bool

IsASCII returns true if the string contains only ascii characters

func IsFloat

func IsFloat(s string) bool

IsFloat returns true if the given string is a floating point number. Allows the string to start with a + or -.

func IsInt

func IsInt(s string) bool

IsInt returns true if the given string is an integer. Allows the string to start with a + or -.

func IsSnake added in v0.3.0

func IsSnake(s string) bool

IsSnake returns true if the string only contains lower case letters, numbers and underscores with no spaces.

func IsUTF8

func IsUTF8(s string) bool

IsUTF8 returns true if the given string only contains valid UTF-8 characters

func IsUTF8Bytes

func IsUTF8Bytes(b []byte) bool

IsUTF8Bytes returns true if the given byte array only contains valid UTF-8 characters

func IsWhitespace added in v0.3.0

func IsWhitespace(s string) bool

IsWhitespace returns true if the given string only contains whitespace characters.

func KebabToCamel

func KebabToCamel(s string) string

KebabToCamel convert string s from kebab-case to CamelCase. The initial case of s does not affect the output.

Example
a := KebabToCamel("abc-def")
fmt.Println(a)
Output:

AbcDef

func PasswordString

func PasswordString(n int) string

PasswordString generates a pseudo random password with the given length using characters that are common in passwords. We leave out letters that are easily visually confused.

Specific letters excluded are lowercase l, upper case I and the number 1, upper case O and the number 0. Also, only easily identifiable and describable symbols are used.

It tries to protect against accidentally creating an easily guessed value by making sure the password has at least one lower-case letter, one upper-case letter, one number, and one symbol. n must be at least 4, or an empty string will be returned.

func Plural added in v0.3.0

func Plural(s string) string

Plural returns the plural version of the given string. This relies on a third party library, which may or may not be accurate. The goal is to handle the most common cases.

func RandomString

func RandomString(source string, n int) string

RandomString generates a pseudo random string of the given length using the given characters. The distribution is not perfect, but works for general purposes.

func ReplaceOldNew added in v0.3.0

func ReplaceOldNew(s string, searchList ...string) string

ReplaceOldNew replaces every string in oldNew with the string following it, such that each pair of strings forms an old/new pair.

func ReplaceStrings

func ReplaceStrings(s string, searchList []string, replaceList []string) string

ReplaceStrings replaces every string in the searchList with the matching string in the replaceList. Will panic if searchList len does not match replaceList len, or anything else goes wrong in the replacement.

func SnakeToCamel added in v0.3.0

func SnakeToCamel(s string) string

SnakeToCamel converts s from snake_case to CamelCase.

func SnakeToKebab

func SnakeToKebab(s string) string

SnakeToKebab converts s from snake_case to kebab-case. Only the underscores are impacted, the case of the rest of s is passed through unchanged.

Example
a := SnakeToKebab("abc_def")
fmt.Println(a)
Output:

abc-def

func StartsWith

func StartsWith(s string, beginning string) bool

StartsWith returns true if the string begins with the beginning string.

func StripNewlines

func StripNewlines(s string) string

StripNewlines removes all newline characters from a string.

func StripNulls

func StripNulls(s string) string

StripNulls removes null characters from a string. Null characters are highly unusual in a string and may indicate an attempt to plant hidden information.

func Title

func Title(s string) string

Title is a more advanced titling operation. It will convert underscores to spaces, and add spaces to CamelCase words.

Example
a := Title("do_i_seeYou")
fmt.Println(a)
Output:

Do I See You

func TrimRightSpace added in v0.3.0

func TrimRightSpace(s string) string

TrimRightSpace returns a string with all its trailing space characters removed.

func TrimShiftLines added in v0.3.0

func TrimShiftLines(s string) string

TrimShiftLines will trim each line in s (separated by newlines) as follows:

If the line is only whitespace, it will become an empty line.

Whitespace at the end of each line will be removed.

Each line that has content will be examined for whitespace in front of the content, and the smallest length of white space found in all the lines will then be removed from the front of every line, provided. that whitespace is found at the front of every line. Note that tabs will not be converted to spaces. The whitespace characters must match. The effect will be to shift all the lines to the left so that the line closest to the left will now be flush with the left, and all other lines will be shifted left the same amount.

Types

This section is empty.

Jump to

Keyboard shortcuts

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